pax_global_header00006660000000000000000000000064125637721530014525gustar00rootroot0000000000000052 comment=ef1da7dc14eae77ebf341c6dc7fc043818c477f3 guvcview-2.0.2+debian/000077500000000000000000000000001256377215300146035ustar00rootroot00000000000000guvcview-2.0.2+debian/AUTHORS000066400000000000000000000001551256377215300156540ustar00rootroot00000000000000Paulo Assis Icons by: Paul Davey http://mattahan.deviantart.com/ guvcview-2.0.2+debian/COPYING000066400000000000000000001045131256377215300156420ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. 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. Copyright (C) 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 . 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: Copyright (C) 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 . 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 . guvcview-2.0.2+debian/ChangeLog000077500000000000000000000446461256377215300163760ustar00rootroot00000000000000guvcview (2.0.2) * fix mjpeg and h264 decoders (libav): init avpacket * fix wrong logic of enable switches (Marvin Schmidt ticket #12) * create a frame queue and refactor frame grab/decode * fix jpeg decoder for older libavcodec api ( < 54.25) * attach video capture to SIGUSR1 signal * add audio latency control to gui * change default portaudio latency to high latency * set device during initialization * use time for matroska segment uid if gsl is disabled * fix array index causing buffer overflow * restore CPPFLAGS after AC_CHECK_HEADERS * remove direct access to device data in v4l2core lib * make sure to stop encoder thread before exiting capture thread * avoid SIGFPE on bad channels or samprate data inside audio capture callbacks * remove check for avcodec.h (it's needed for very old libavcodec versions); set iyuv as default internal format (over yuyv) * add basic support for continuous and stepwise frame sizes * add support for empty control list * add code for crossair osd * fix h264 demux from mjpg container * fix pan/tilt for logitech peripheral V3 (use raw control instead of v4l2) -- Paulo Assis Mon, 27 Jul 2015 12:00:00 +0100 guvcview (2.0.1) * Fix audio clean bug (segfault when audio=none) * Add --disable_libv4l2 option * Add support for internal yu12 planar format * Workaround uvcvideo bug (buf.bytesused=0 on kernels >=3.16) -- Paulo Assis Tue, 30 Sep 2014 18:05:00 +0100 guvcview (2.0.0) * new version 2.0.0 (code rewriten from scratch) * move all core functions to 4 shared libs * change options * change config * add sdl2 render * use gsl for random number generation -- Paulo Assis Fri, 2 May 2014 9:54:00 +0100 guvcview (1.7.3) * add silence frames to compensate audio drift (delay). * fix possible memory leak * add video and image capture through system signals: SIGUSR1 and SIGUSR2 * add true no_display mode (no X required) * small bug fixes -- Paulo Assis Sun, 16 Feb 2014 10:24:00 +0000 guvcview (1.7.2) * Add H264 decoding support. * Sync translations. -- Paulo Assis Sun, 8 Dec 2013 10:26:00 +0000 guvcview (1.7.1) * Fix avi muxer: fix opendml indexes (>= 1Gb) * Update Italian translation -- Paulo Assis Tue, 16 Jul 2013 13:27:00 +0000 guvcview (1.7.0) * refactor avi muxer (base it on libav muxer with opendml support) * refactor mkv muxer (base it on libav muxer with webm support) * Add VP8, Theora and Vorbis codecs * Add Webm support * Add a Top Menu * Move all file operations to the Top Menu -- Paulo Assis Sun, 20 Jan 2013 15:44:00 +0000 guvcview (1.6.1) * Fix build with latest libavcodec * Fix audio codecs listing * Fix audio codecs (AC3 and AAC) input format for latest libavcodec API (float) * Add support for delayed frames in video encoding -- Paulo Assis Sun, 22 Jul 2012 14:35:00 +0000 guvcview (1.6.0) * run audio in separate thread * update audio buffer * move pulse audio interface from simple to async API * add pulse device list * enable build of pulse API by default -- Paulo Assis Thu, 19 Apr 2012 23:18:00 +0000 guvcview (1.5.3) * update libavcodec API * add libavutil dependency * fix pulse interface * update language catalogs (add bs and fo) -- Paulo Assis Mon, 27 Feb 2012 23:18:00 +0000 guvcview (1.5.2) * move to pthreads (fix gthread API 2 issues) * add italian translation * fix several libavcodec issues * fix some gtk3 widgets -- Paulo Assis Wed, 1 Feb 2012 23:01:00 +0000 guvcview (1.5.1) * move to gtk3 * make control window size dependent on screen resolution * Threaded coding patch by George Sedov * fix h264 codec properties -- Paulo Assis Wed, 12 Oct 2011 12:12:00 +0000 guvcview (1.5.0) * add a no display mode (--no_display) * fix build issues with newer versions (>=0.7.x) of ffmpeg libavcodec * add support for unix signals * add VU meter OSD * fix menu controls (linux 3.0) -- Paulo Assis Tue, 9 Aug 2011 22:16:00 +0000 guvcview (1.4.5) * store current codec properties in configuration file * fix audio codec properties button * modify some logitech extra controls (integer to menu) -- Paulo Assis Tue, 1 Mar 2011 23:09:00 +0000 guvcview (1.4.4) * add av_sync patch by Richard Fuchs : Fixes sync issues between audio and video (most noticeable in avi container due to lack of timestamps) * Apply matroska-largefiles patch by Richard Fuchs : Fix large files indexing in 32 bit systems * fix logitech disable video processing mode -- Paulo Assis Mon, 10 Jan 2011 15:05:00 +0000 guvcview (1.4.3) * Fix control enumeration for buggy cameras (endless loop on failed control query) * Add udev events support (new dependy libudev) * Add exit on close to image capture * Fix image capture autonaming when set from command line -- Paulo Assis Sun, 06 Nov 2010 11:00:00 +0000 guvcview (1.4.2) * Add support for Y16 pixel format (Greyscale) * Fix dynamic control support under kernels > 2.6.35 * Check if resolution is supported by SDL_Surface * Check for null overlays * Use a sanner video ring buffer size (dependent on fps) * Add gdk-pixbuf-2.0 to pkg-config dependencies - fix build error on Maverick -- Paulo Assis Sat, 25 Sept 2010 14:45:00 +0000 guvcview (1.4.1) * Fix h264 default values * Fix dynamic control mappings (uncache dynamic ctrls in uvc driver) * Check for valid ranges on integer controls -- Paulo Assis Mon, 14 Jun 2010 23:24:00 +0000 guvcview (1.4.0) * completly refactor v4l control interface * change to control profile file format - rfc 0.0.2 * change icon set, use Paul Davey icons: http://mattahan.deviantart.com/ -- Paulo Assis Tue, 8 Jun 2010 10:18:00 +0000 guvcview (1.3.1) * Add support for GDK events * Add support for Webcam photo button * Add raw image format to command line picture timed capture -- Paulo Assis Sat, 10 Apr 2010 22:23:00 +0000 guvcview (1.3.0) * Use libv4l2 for device access * Fix several builtin software autofocus issues -- Paulo Assis Sat, 6 Mar 2010 19:58:00 +0000 guvcview (1.2.2) * Drop Twolame dependency * Audio enconding through libavcodec * Add MP3, AC3 and AAC support -- Paulo Assis Sat, 30 Jan 2010 13:08:00 +0000 guvcview (1.2.1) * Performance boost: - Use ring buffers for video and audio processing. - Moved video and audio processing (including file IO) to separate thread. * Add particles video effect. * Fixed bug caused by empty device list. * Add MPG4-AVC (H264) codec support. -- Paulo Assis Mon, 16 Nov 2009 10:25:00 +0000 guvcview (1.2.0) * Resolution and input format change no longer need a restart * Add add_ctrls option - exits after adding extension controls * Add disk check during capture (checks free space every 10sec) * Stop capture if low on free disk space * Add xioctl funtion - failed ioctl will be retried 4 times in case of I/O error * Fixed invalid gtk-button-images property warning -- Paulo Assis Wed, 13 Oct 2009 11:30:00 +0000 guvcview (1.1.4) * Set pixel format BA81 to correct fourcc * Definitve fix button images display under karmic * Sdd pix formats: nv12, nv21, nv16, nv61, y41p, grey, s501, s505, s508 * Improve yu12 and yv12 format conversion. * Add skip initial frames option * Fix man pages * Add hebrew language support -- Paulo Assis Wed, 19 Sep 2009 21:59:00 +0000 guvcview (1.1.3) * Add rgb24 and bgr24 color formats * Set pulse support disabled by default in configure * Add extra messages to configure * Fix button images display under gtk 2.17 -- Paulo Assis Thu, 20 Aug 2009 13:50:00 +0000 guvcview (1.1.2) * Fixed YUYV Matroska codec segfault * Added enable-debug option to configure (debug symbols (-g) is now disable by default) * Added Dutch translation -- Paulo Assis Wed, 13 Aug 2009 12:59:00 +0000 guvcview (1.1.1) * Fixed Ubuntu 9.10 exit segfault * Added disable-pulse option to configure * Added russian translation by Roustam Ghizdatov * Added patches 2763, 2764 and 2765 by iwamatsu * Fixed some video format conversions * Fixed memory allocations when in control_only mode -- Paulo Assis Sun, 31 May 2009 10:16:00 +0000 guvcview (1.1.0) * Added Matroska file format support (mkv) * Fixed Ubuntu 9.10 audio capture * Added initial pulseaudio support (testing only - needs pulse-devel for enabling) -- Paulo Assis Sun, 10 May 2009 14:26:00 +0000 guvcview (1.0.5-ubuntu1) intrepid; urgency=low * Added libavcodec properties button * Improved default options for libavcodec * Improved support for libavcodec -- Paulo Assis Sat, 4 Apr 2009 14:00:00 +0000 guvcview (1.0.4-ubuntu1) intrepid; urgency=low * Added WMV1 encoding to avi capture * fixed libavcodec configuration * changed support for uyvy (now we convert it to yuyv and use only one render format) * changed raw bayer conversion funtions * added full bayer support ( all bayer pixel formats) -- Paulo Assis Sun, 29 Mar 2009 22:32:00 +0000 guvcview (1.0.3-ubuntu1) intrepid; urgency=low * Added MPEG encoding to avi capture * Added FLV1 encoding to avi capture * Added japanese translation -- Paulo Assis Mon, 23 Mar 2009 23:01:00 +0000 guvcview (1.0.2-ubuntu1) intrepid; urgency=low * Fixed segfault on gspca devices -- Paulo Assis Sun, 8 Mar 2009 09:58:00 +0000 guvcview (1.0.1) intrepid; urgency=low * Fixed giant bug that prevented format detection -- Paulo Assis Mon, 4 Mar 2009 23:57:00 +0000 guvcview (1.0.0) intrepid; urgency=low * Fixed vid:pid for UVC driver dynamic controls (parsing v4l2_cap card value) * Fixed yu12 conversion bug (needs testing) * added yv12 frame format (needs testing) * added yvyu frame format (needs testing) * Fixed null devices list bug (segfault) * Added version option to console args (--version) -- Paulo Assis Mon, 2 Mar 2009 14:43:00 +0000 guvcview (0.9.9) intrepid; urgency=low * Fixed Format detection bug * Added control only functionality (--control_only), allows image control in different apps (e.g ekiga, mplayer) * Splitted V4l2 interface in smaller files -- Paulo Assis Thu, 19 Feb 2009 18:03:00 +0000 guvcview (0.9.8) intrepid; urgency=low * Added audio tab * Added new icon theme * Added audio effects * Added Turkish, Danish and Czech catalogs * Fixed Debian/armel corruption bug.(fix by Rask Ingemann Lambertsen) * Fixed gdk display bug after avi capture auto split (when max length reached), make gdk thread safe. * Fixed empty device list segfault bug -- Paulo Assis Sat, 28 Jan 2009 09:43:00 +0000 guvcview (0.9.7) stable; urgency=low * Added JPEG pixel format support. * Added YYUV pixel format support. * Change configuration parsing method, using GScanner (glib). * Change console options parsing method, using GOption (glib). * Change string handling, using glib functions. * Change memory managment, using glib functions. * Change from pthreads to gthreads (glib). * Added multiple device support. -- Paulo Assis Tue, 31 Dec 2008 12:16:00 +0000 guvcview (0.9.6) stable; urgency=low * Fixed Get Focus value for logitech motor focus cameras. * Added select with timeout so guvcview won't stall at VIDIOC_DQBUFF. * Added support for GBRG pix format. * Added initial support for drivers that don't enumerate frame sizes (gspca). * Change console options parsing method, we now use getopt. * Improved v4l2 error handling by providing more usefull error messages. -- Paulo Assis Sat, 6 Dec 2008 18:44:00 +0000 guvcview (0.9.5) stable; urgency=low * Fixed several warnings in valgrind. * Fixed a couple of memory leaks. * Fixed a device open/close bug after first format init failure, causing second init with a valid format to fail. -- Paulo Assis Fri, 7 Nov 2008 23:19:00 +0000 guvcview (0.9.4) stable; urgency=low * Added support for isight camera - UYVY (Nobuhiro Iwamatsu). * Added support for YU12 ( YUV 4:2:0 planar ) pix format * Changed audio capture from blocking API to callback API, should improve audio performance. * Improved software autofocus (Dr. Alexander K. Seewald) * Added MP2 audio compression (twolame) * Added AVI auto file naming * Added AVI multi file captures (captures bigger than max file size) -- Paulo Assis Mon, 13 Oct 2008 18:48:00 +0000 guvcview (0.9.3) stable; urgency=low * Fixed buffer overflow in filename extension for autocapture. * Fixed Doc installation path * Added software autofocus control for quickcam cameras (beta) * Changed avi audio method (audio chunks are now written directly to avi file) * Added avi max file size limit to config file * Close avi safely and stop capture when max file size reached * Fixed compilation with 2.6.26 kernels -- Paulo Assis Mon, 18 Aug 2008 23:25:00 +0000 guvcview (0.9.2) stable; urgency=low * Fixed German Translation by Andreas Volz . * Fixed Jpg Save error on Cameras with incomplete JFIF headers -- Paulo Assis Mon, 21 Jul 2008 23:30:00 +0000 guvcview (0.9.1) stable; urgency=low * Added error message dialogs. * Changed cleanup. * Added translations for error messages. * Fixed Pan/Tilt for Sphere/Orbit (should now work with latest libwebcam) * Changed icon set * Added guvcview icon to control window * Improved Raw support (needs patch for uvc driver, http://forums.quickcamteam.net/showthread.php?tid=323) -- Paulo Assis Wed, 11 Jul 2008 12:04:00 +0000 guvcview (0.9.0) stable; urgency=low * GUI change: Add Tab Container. * Add spin button to integer controls (allows fine tunning). * Add gettext support (i18n). * Add laguage catalogs (pt pt_PT pt_BR fr de). * Add button icons. * Changed build scripts, make will now build guvcview.desktop and make install will install all data files. -- Paulo Assis Mon, 18 May 2008 10:20:00 +0000 guvcview (0.8.2) stable; urgency=low * Fixed SegFault after soundthread exit in 64 bit systems (bug: #013688) * Moved all SDL related stuff to video thread * Add support for long name command line args -- Paulo Assis Fri, 02 May 2008 19:18:00 +0000 guvcview (0.8.1) stable; urgency=low * Fixed Debian Testing (lenny) image file name icrement bug. -- Paulo Assis Wed, 19 Apr 2008 22:25:18 +0000 guvcview (0.8.0) stable; urgency=low * Fixed Pan/Tilt and Focus Control * Added Scrolled Pans to GUI * Added image autonaming and auto capture. -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.7.4) stable; urgency=low * Added File Auto name checkbox * Added File increment label -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.7.3) stable; urgency=low * Added file name increment for multiple captures * Added timed capture mode * Fixed Pan/Tilt controls -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.7.1) stable; urgency=low * Fixed Backlight Compensation * Added Dynamic Controls * Added video loop sleep time to rc file -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.7.0) stable; urgency=low * Fixed Cell padding (auto resize widgets) * Fixed Mono filter * Added quit button * Added sound capture parameters to rc file * Added device string to rc file -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.6.2) stable; urgency=low * Replace '~' by home dir in Path entry * added fps counter command line option '-p' * added input mode combo box (jpg - yuv) -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.6.1) stable; urgency=low * fixed memory allocation bug for jpeg encoder buffer * added video filters to rc file -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.6.0) unstable; urgency=low * Added image filters * Added built-in jpeg encoder (allows jpeg and MJPG compression with filters and in yuv mode) * Changed Exposure settings to comboBox (compatibility with V4L2) -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.5.4) unstable; urgency=low * Adds [-t seconds] and [-n filename.avi] command line options - timer used with -n will capture filename.avi for specified number of seconds * Stores avi and sound options to rc file. The options will be remembered in the next session. * Moved global variables to global structure. Allows bether cleanup. * Increased audio input buffer - will avoid droping frames in the begining of capture in slower machines. * Improved sync system for video-audio. * Cleanup of some non-used variables. -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.5.2-1) unstable; urgency=low * fixes a restart bug when guvcview is started from system path -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.5.1-0) unstable; urgency=low * disables sound and avi compression controls when in avi capture * some bug fixing for sound capture. -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview (0.5.0-beta) unstable; urgency=low * Adds basic sound support to AVI capture * AVI video set by default to MJPG -- Paulo Assis Wed, 09 Jan 2008 19:07:18 +0000 guvcview-2.0.2+debian/INSTALL000066400000000000000000000366101256377215300156420ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command `./configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. guvcview-2.0.2+debian/Makefile.am000066400000000000000000000055731256377215300166510ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in SUBDIRS = gview_v4l2core \ gview_audio \ gview_render \ gview_encoder \ guvcview \ data \ po \ po/gview_v4l2core #Distribute these directories: DIST_SUBDIRS = gview_v4l2core \ gview_audio \ gview_render \ gview_encoder \ guvcview \ data \ po \ po/gview_v4l2core pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = pkgconfig/libgviewv4l2core.pc \ pkgconfig/libgviewaudio.pc \ pkgconfig/libgviewrender.pc \ pkgconfig/libgviewencoder.pc ACLOCAL_AMFLAGS = -I m4 docdir = ${datadir}/doc/guvcview doc_DATA = \ README.md\ COPYING\ AUTHORS\ ChangeLog\ INSTALL EXTRA_DIST = bootstrap.sh check-gettext: @if test x$(USE_NLS) != "xyes" ; then echo "Missing gettext. Rerun configure and check for" \ "'checking whether to use NLS... yes'!" ; exit 1 ; fi update-po: check-gettext cd $(srcdir); \ echo "#desktop file" >> po/POTFILES.in.2; \ echo "data/guvcview.desktop.in.in" >> po/POTFILES.in.2; \ echo "#appdata file" >> po/POTFILES.in.2; \ echo "data/guvcview.appdata.xml.in.in" >> po/POTFILES.in.2; \ echo "#gview_v4l2core lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_render lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_render/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_audio lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_audio/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_encoder" >> po/POTFILES.in.2; \ grep '_(' `find gview_encoder/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#guvcview" >> po/POTFILES.in.2; \ grep '_(' `find guvcview/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ if diff po/POTFILES.in po/POTFILES.in.2 >/dev/null 2>&1 ; then \ rm -f po/POTFILES.in.2 ; \ else \ mv po/POTFILES.in.2 po/POTFILES.in ; \ fi cd po && $(MAKE) $(AM_MAKEFLAGS) update-po cd $(srcdir); \ echo "#gview_v4l2core lib" >> po/gview_v4l2core/POTFILES.in.2; \ grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/gview_v4l2core/POTFILES.in.2 ; \ if diff po/gview_v4l2core/POTFILES.in po/gview_v4l2core/POTFILES.in.2 >/dev/null 2>&1 ; then \ rm -f po/gview_v4l2core/POTFILES.in.2 ; \ else \ mv po/gview_v4l2core/POTFILES.in.2 po/gview_v4l2core/POTFILES.in ; \ fi cd po/gview_v4l2core && $(MAKE) $(AM_MAKEFLAGS) update-po update-gmo: check-gettext cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo force-update-gmo: check-gettext touch $(srcdir)/po/*.po cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo # Copy all the spec files. Of cource, only one is actually used. dist-hook: for specfile in *.spec; do \ if test -f $$specfile; then \ cp -p $$specfile $(distdir); \ fi \ done .PHONY: check-gettext update-po update-gmo force-update-gmo guvcview-2.0.2+debian/Makefile.in000066400000000000000000001037621256377215300166610ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in \ $(top_srcdir)/pkgconfig/libgviewv4l2core.pc.in \ $(top_srcdir)/pkgconfig/libgviewaudio.pc.in \ $(top_srcdir)/pkgconfig/libgviewrender.pc.in \ $(top_srcdir)/pkgconfig/libgviewencoder.pc.in AUTHORS COPYING \ ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \ install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = pkgconfig/libgviewv4l2core.pc \ pkgconfig/libgviewaudio.pc pkgconfig/libgviewrender.pc \ pkgconfig/libgviewencoder.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" DATA = $(doc_DATA) $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = ${datadir}/doc/guvcview dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gview_v4l2core \ gview_audio \ gview_render \ gview_encoder \ guvcview \ data \ po \ po/gview_v4l2core #Distribute these directories: DIST_SUBDIRS = gview_v4l2core \ gview_audio \ gview_render \ gview_encoder \ guvcview \ data \ po \ po/gview_v4l2core pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = pkgconfig/libgviewv4l2core.pc \ pkgconfig/libgviewaudio.pc \ pkgconfig/libgviewrender.pc \ pkgconfig/libgviewencoder.pc ACLOCAL_AMFLAGS = -I m4 doc_DATA = \ README.md\ COPYING\ AUTHORS\ ChangeLog\ INSTALL EXTRA_DIST = bootstrap.sh all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 pkgconfig/libgviewv4l2core.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewv4l2core.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ pkgconfig/libgviewaudio.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewaudio.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ pkgconfig/libgviewrender.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewrender.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ pkgconfig/libgviewencoder.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/libgviewencoder.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-docDATA install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-docDATA uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-docDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-docDATA uninstall-pkgconfigDATA check-gettext: @if test x$(USE_NLS) != "xyes" ; then echo "Missing gettext. Rerun configure and check for" \ "'checking whether to use NLS... yes'!" ; exit 1 ; fi update-po: check-gettext cd $(srcdir); \ echo "#desktop file" >> po/POTFILES.in.2; \ echo "data/guvcview.desktop.in.in" >> po/POTFILES.in.2; \ echo "#appdata file" >> po/POTFILES.in.2; \ echo "data/guvcview.appdata.xml.in.in" >> po/POTFILES.in.2; \ echo "#gview_v4l2core lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_render lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_render/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_audio lib" >> po/POTFILES.in.2; \ grep '_(' `find gview_audio/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#gview_encoder" >> po/POTFILES.in.2; \ grep '_(' `find gview_encoder/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ echo "#guvcview" >> po/POTFILES.in.2; \ grep '_(' `find guvcview/ -name "*c"` | cut -d: -f1 | sort -u >> po/POTFILES.in.2 ; \ if diff po/POTFILES.in po/POTFILES.in.2 >/dev/null 2>&1 ; then \ rm -f po/POTFILES.in.2 ; \ else \ mv po/POTFILES.in.2 po/POTFILES.in ; \ fi cd po && $(MAKE) $(AM_MAKEFLAGS) update-po cd $(srcdir); \ echo "#gview_v4l2core lib" >> po/gview_v4l2core/POTFILES.in.2; \ grep '_(' `find gview_v4l2core/ -name "*c"` | cut -d: -f1 | sort -u >> po/gview_v4l2core/POTFILES.in.2 ; \ if diff po/gview_v4l2core/POTFILES.in po/gview_v4l2core/POTFILES.in.2 >/dev/null 2>&1 ; then \ rm -f po/gview_v4l2core/POTFILES.in.2 ; \ else \ mv po/gview_v4l2core/POTFILES.in.2 po/gview_v4l2core/POTFILES.in ; \ fi cd po/gview_v4l2core && $(MAKE) $(AM_MAKEFLAGS) update-po update-gmo: check-gettext cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo force-update-gmo: check-gettext touch $(srcdir)/po/*.po cd po && $(MAKE) $(AM_MAKEFLAGS) update-gmo # Copy all the spec files. Of cource, only one is actually used. dist-hook: for specfile in *.spec; do \ if test -f $$specfile; then \ cp -p $$specfile $(distdir); \ fi \ done .PHONY: check-gettext update-po update-gmo force-update-gmo # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/NEWS000066400000000000000000000000001256377215300152700ustar00rootroot00000000000000guvcview-2.0.2+debian/README.md000066400000000000000000000054771256377215300160770ustar00rootroot00000000000000GTK UVC VIEWER (guvcview) ************************* Basic Configuration =================== Dependencies: ------------- Guvcview depends on the following: - intltool, - autotools, - libsdl2 or libsdl, - libgtk-3, - portaudio19, - libpng, - libavcodec, - libavutil, - libv4l, - libudev, - libusb-1.0, - libpulse (optional) - libgsl (optional) On most distributions you can just install the development packages: intltool, autotools-dev, libsdl2-dev, libgtk-3-dev, portaudio19-dev, libpng12-dev, libavcodec-dev, libavutil-dev, libv4l-dev, libudev-dev, libusb-1.0-0-dev, libpulse-dev, libgsl-dev Build configuration: -------------------- (./bootstrap.sh; ./configure) The configure script is generated from configure.ac by autoconf, the helper script ./bootstrap.sh can be used for this, it will also run the generated configure with the command line options passed. After configuration a simple 'make && make install' will build and install guvcview and all the associated data files. Data Files: ------------ (language files; image files; gnome menu entry) guvcview data files are stored by default to /usr/local/share setting a different prefix (--prefix=BASEDIR) during configuration will change the installation path to BASEDIR/share. Built files, src/guvcview and data/gnome.desktop, are dependent on this path, so if a new prefix is set a make clean is required before issuing the make command. After running the configure script the normal, make && make install should build and install all the necessary files. guvcview bin: ------------- (guvcview) The binarie file installs to the standart location, /usr/local/bin, to change the install path, configure must be executed with --prefix=DIR set, this will cause the bin file to be installed in DIR/bin, make sure DIR/bin is set in your PATH variable, or the gnome menu entry will fail. guvcview libraries: ------------------- (libgviewv4l2core, libgviewrender, libgviewaudio, libgviewencoder) The core functionality of guvcview is now split into 4 libraries these will install to ${prefix}/lib and development headers to ${prefix}/include/guvcview-2/libname. pkg-config should be use to determine the compile flags. guvcview.desktop: ----------------- (data/guvcview.desktop) The desktop file (gnome menu entry) is built from the data/guvcview.desktop.in definition and is dependent on the configure --prefix setting, any changes to this, must be done in data/guvcview.desktop.in. configuration files: -------------------- (~/.config/guvcview2/video0) The configuration file is saved into the $HOME dir when exiting guvcview. If a video device with index > 0, e.g: /dev/video1 is used then the file stored will be named ~/.config/guvcview2/video1 Executing guvcview ================== For instructions on the command line args execute "guvcview --help". guvcview-2.0.2+debian/aclocal.m4000066400000000000000000001774521256377215300164630ustar00rootroot00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # ------------------------------------------- # Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])# PKG_CHECK_VAR # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/acx_pthread.m4]) m4_include([m4/intltool.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) guvcview-2.0.2+debian/bootstrap.sh000077500000000000000000000001561256377215300171610ustar00rootroot00000000000000#!/bin/sh # To be safe include -I flag autoreconf --force --verbose --install ./configure --config-cache $* guvcview-2.0.2+debian/compile000077500000000000000000000162451256377215300161710ustar00rootroot00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: guvcview-2.0.2+debian/config.guess000077500000000000000000001235501256377215300171310ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-03-23' # This file 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: guvcview-2.0.2+debian/config.h.in000066400000000000000000000073721256377215300166370ustar00rootroot00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* set to 1 if sdl2 is enabled */ #undef ENABLE_SDL2 /* guvcview */ #undef GETTEXT_PACKAGE /* gview_v4l2core */ #undef GETTEXT_PACKAGE_V4L2CORE /* set to 1 if gsl is enabled */ #undef HAS_GSL /* set to 1 if pulseaudio installed */ #undef HAS_PULSEAUDIO /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the `dirfd' function. */ #undef HAVE_DIRFD /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* libm includes exp */ #undef HAVE_EXP /* Define to 1 if you have the header file. */ #undef HAVE_FFMPEG_AVCODEC_H /* Define to 1 if you have the `fpathconf' function. */ #undef HAVE_FPATHCONF /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVCODEC_AVCODEC_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVUTIL_VERSION_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* libm includes pow */ #undef HAVE_POW /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* libm includes roundf */ #undef HAVE_ROUNDF /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* set to 1 if builtin decoder is enabled */ #undef MJPG_BUILTIN /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* 2 */ #undef PACKAGE_RELEASE /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* set to 1 if iyuv is enabled */ #undef USE_PLANAR_YUV /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif guvcview-2.0.2+debian/config.sub000077500000000000000000001057751256377215300166050ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-09-11' # This file 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: guvcview-2.0.2+debian/configure000077500000000000000000020011601256377215300165120ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for guvcview 2.0.2. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://guvcview.sourceforge.net/ about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='guvcview' PACKAGE_TARNAME='guvcview' PACKAGE_VERSION='2.0.2' PACKAGE_STRING='guvcview 2.0.2' PACKAGE_BUGREPORT='http://guvcview.sourceforge.net/' PACKAGE_URL='' ac_default_prefix=/usr/local # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS DESKTOP_FALSE DESKTOP_TRUE DEBIAN_MENU_FALSE DEBIAN_MENU_TRUE GUVCVIEW_LIBS GUVCVIEW_CFLAGS GVIEWENCODER_LIBS GVIEWENCODER_CFLAGS GVIEWENCODER_LIBRARY_VERSION GVIEWENCODER_API_VERSION GVIEWENCODER_LD_NAME GVIEWENCODER_LIBRARY_NAME HAVE_PULSEAUDIO_FALSE HAVE_PULSEAUDIO_TRUE PULSE_LIBS PULSE_CFLAGS GVIEWAUDIO_LIBS GVIEWAUDIO_CFLAGS GVIEWAUDIO_LIBRARY_VERSION GVIEWAUDIO_API_VERSION GVIEWAUDIO_LD_NAME GVIEWAUDIO_LIBRARY_NAME GSL_LIBS GSL_CFLAGS ENABLE_SDL2_FALSE ENABLE_SDL2_TRUE GVIEWRENDER_LIBS GVIEWRENDER_CFLAGS GVIEWRENDER_LIBRARY_VERSION GVIEWRENDER_API_VERSION GVIEWRENDER_LD_NAME GVIEWRENDER_LIBRARY_NAME GVIEWV4L2CORE_LIBS GVIEWV4L2CORE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG GVIEWV4L2CORE_LIBRARY_VERSION GVIEWV4L2CORE_API_VERSION GVIEWV4L2CORE_LD_NAME GVIEWV4L2CORE_LIBRARY_NAME MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS MSGFMT_OPTS ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE intltool__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS GETTEXT_PACKAGE GETTEXT_PACKAGE_V4L2CORE PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC acx_pthread_config OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V PACKAGE_RELEASE target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_nls enable_yuyv enable_builtin_mjpg enable_sdl2 enable_gsl enable_pulse enable_debian_menu enable_desktop ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GVIEWV4L2CORE_CFLAGS GVIEWV4L2CORE_LIBS GVIEWRENDER_CFLAGS GVIEWRENDER_LIBS GSL_CFLAGS GSL_LIBS GVIEWAUDIO_CFLAGS GVIEWAUDIO_LIBS PULSE_CFLAGS PULSE_LIBS GVIEWENCODER_CFLAGS GVIEWENCODER_LIBS GUVCVIEW_CFLAGS GUVCVIEW_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures guvcview 2.0.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/guvcview] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of guvcview 2.0.2:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --enable-yuyv enable yuyv (packed) as internal format (default: iyuv (420 planar)) --enable-builtin-mjpg enable builtin mjpg decoder support (default: disabled) --disable-sdl2 disable sdl2 support (default: enabled) --disable-gsl disable gsl support (default: enabled) --disable-pulse disable pulseaudio support (default: enabled) --disable-debian-menu disable debian menu (default: enabled) --disable-desktop disable desktop file (default: enabled) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GVIEWV4L2CORE_CFLAGS C compiler flags for GVIEWV4L2CORE, overriding pkg-config GVIEWV4L2CORE_LIBS linker flags for GVIEWV4L2CORE, overriding pkg-config GVIEWRENDER_CFLAGS C compiler flags for GVIEWRENDER, overriding pkg-config GVIEWRENDER_LIBS linker flags for GVIEWRENDER, overriding pkg-config GSL_CFLAGS C compiler flags for GSL, overriding pkg-config GSL_LIBS linker flags for GSL, overriding pkg-config GVIEWAUDIO_CFLAGS C compiler flags for GVIEWAUDIO, overriding pkg-config GVIEWAUDIO_LIBS linker flags for GVIEWAUDIO, overriding pkg-config PULSE_CFLAGS C compiler flags for PULSE, overriding pkg-config PULSE_LIBS linker flags for PULSE, overriding pkg-config GVIEWENCODER_CFLAGS C compiler flags for GVIEWENCODER, overriding pkg-config GVIEWENCODER_LIBS linker flags for GVIEWENCODER, overriding pkg-config GUVCVIEW_CFLAGS C compiler flags for GUVCVIEW, overriding pkg-config GUVCVIEW_LIBS linker flags for GUVCVIEW, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF guvcview configure 2.0.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------------------- ## ## Report this to http://guvcview.sourceforge.net/ ## ## ----------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by guvcview $as_me 2.0.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu PACKAGE_RELEASE=2 cat >>confdefs.h <<_ACEOF #define PACKAGE_RELEASE "$PACKAGE_RELEASE" _ACEOF # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='guvcview' VERSION='2.0.2' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # autoconf 2.5x defaults to no cache file; we need the cache file's information # for building the config page. But start with it empty to avoid confusion by # people who don't do a "make distclean" after applying patches. cache_file=config.cache rm -f config.cache; touch config.cache ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 $as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_join (); int main () { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 $as_echo_n "checking whether pthreads work without any flags... " >&6; } ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 $as_echo_n "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_acx_pthread_config+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$acx_pthread_config"; then ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_acx_pthread_config="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi fi acx_pthread_config=$ac_cv_prog_acx_pthread_config if test -n "$acx_pthread_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 $as_echo "$acx_pthread_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 $as_echo_n "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 $as_echo_n "checking for joinable pthread attribute... " >&6; } attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int attr=$attr; return attr; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : attr_name=$attr; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 $as_echo "$attr_name" >&6; } if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then cat >>confdefs.h <<_ACEOF #define PTHREAD_CREATE_JOINABLE $attr_name _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 $as_echo_n "checking if more special flags are required for pthreads... " >&6; } flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 $as_echo "${flag}" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then for ac_prog in xlc_r cc_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PTHREAD_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PTHREAD_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 $as_echo "$PTHREAD_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PTHREAD_CC" && break done test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h : else acx_pthread_ok=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu GETTEXT_PACKAGE_V4L2CORE=gview_v4l2core cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE_V4L2CORE "$GETTEXT_PACKAGE_V4L2CORE" _ACEOF GETTEXT_PACKAGE=guvcview cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "0.40"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40" >&5 $as_echo_n "checking for intltool >= 0.40... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.40 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in math.h do : ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MATH_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exp in -lm" >&5 $as_echo_n "checking for exp in -lm... " >&6; } if ${ac_cv_lib_m_exp+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char exp (); int main () { return exp (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_exp=yes else ac_cv_lib_m_exp=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_exp" >&5 $as_echo "$ac_cv_lib_m_exp" >&6; } if test "x$ac_cv_lib_m_exp" = xyes; then : $as_echo "#define HAVE_EXP 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for roundf in -lm" >&5 $as_echo_n "checking for roundf in -lm... " >&6; } if ${ac_cv_lib_m_roundf+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char roundf (); int main () { return roundf (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_roundf=yes else ac_cv_lib_m_roundf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_roundf" >&5 $as_echo "$ac_cv_lib_m_roundf" >&6; } if test "x$ac_cv_lib_m_roundf" = xyes; then : $as_echo "#define HAVE_ROUNDF 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5 $as_echo_n "checking for pow in -lm... " >&6; } if ${ac_cv_lib_m_pow+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); int main () { return pow (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_pow=yes else ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 $as_echo "$ac_cv_lib_m_pow" >&6; } if test "x$ac_cv_lib_m_pow" = xyes; then : $as_echo "#define HAVE_POW 1" >>confdefs.h fi GVIEWV4L2CORE_LIBRARY_NAME=libgviewv4l2core GVIEWV4L2CORE_LD_NAME=gviewv4l2core #release versioning GVIEWV4L2CORE_MAJOR_VERSION=1 GVIEWV4L2CORE_MINOR_VERSION=1 GVIEWV4L2CORE_MICRO_VERSION=0 #API version (SONAME) GVIEWV4L2CORE_API_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION.$GVIEWV4L2CORE_MINOR_VERSION #shared library versioning GVIEWV4L2CORE_LIBRARY_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION:$GVIEWV4L2CORE_MINOR_VERSION:$GVIEWV4L2CORE_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWV4L2CORE" >&5 $as_echo_n "checking for GVIEWV4L2CORE... " >&6; } if test -n "$GVIEWV4L2CORE_CFLAGS"; then pkg_cv_GVIEWV4L2CORE_CFLAGS="$GVIEWV4L2CORE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l2 libudev libusb-1.0 libavcodec libpng\""; } >&5 ($PKG_CONFIG --exists --print-errors "libv4l2 libudev libusb-1.0 libavcodec libpng") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWV4L2CORE_CFLAGS=`$PKG_CONFIG --cflags "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GVIEWV4L2CORE_LIBS"; then pkg_cv_GVIEWV4L2CORE_LIBS="$GVIEWV4L2CORE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l2 libudev libusb-1.0 libavcodec libpng\""; } >&5 ($PKG_CONFIG --exists --print-errors "libv4l2 libudev libusb-1.0 libavcodec libpng") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWV4L2CORE_LIBS=`$PKG_CONFIG --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GVIEWV4L2CORE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>&1` else GVIEWV4L2CORE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libv4l2 libudev libusb-1.0 libavcodec libpng" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GVIEWV4L2CORE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libv4l2 libudev libusb-1.0 libavcodec libpng) were not met: $GVIEWV4L2CORE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GVIEWV4L2CORE_CFLAGS and GVIEWV4L2CORE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GVIEWV4L2CORE_CFLAGS and GVIEWV4L2CORE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GVIEWV4L2CORE_CFLAGS=$pkg_cv_GVIEWV4L2CORE_CFLAGS GVIEWV4L2CORE_LIBS=$pkg_cv_GVIEWV4L2CORE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable yuyv (packed) as internal format" >&5 $as_echo_n "checking if you want to enable yuyv (packed) as internal format... " >&6; } # Check whether --enable-yuyv was given. if test "${enable_yuyv+set}" = set; then : enableval=$enable_yuyv; enable_yuyv=$enableval else enable_yuyv=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_yuyv" >&5 $as_echo "$enable_yuyv" >&6; } if test $enable_yuyv = yes; then yuv_format=yuyv else $as_echo "#define USE_PLANAR_YUV 1" >>confdefs.h yuv_format=iyuv fi for ac_header in libavcodec/avcodec.h ffmpeg/avcodec.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to use the internal mjpeg decoder over libavcodec " >&5 $as_echo_n "checking if you want to use the internal mjpeg decoder over libavcodec ... " >&6; } # Check whether --enable-builtin-mjpg was given. if test "${enable_builtin_mjpg+set}" = set; then : enableval=$enable_builtin_mjpg; enable_builtin_mjpg=$enableval else enable_builtin_mjpg=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_builtin_mjpg" >&5 $as_echo "$enable_builtin_mjpg" >&6; } if test $enable_builtin_mjpg = yes; then $as_echo "#define MJPG_BUILTIN 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libavcodec mjpg decoder disabled... the builtin decoder will be used instead." >&5 $as_echo "$as_me: WARNING: libavcodec mjpg decoder disabled... the builtin decoder will be used instead." >&2;} mjpg_decoder=builtin else mjpg_decoder=libavcodec fi GVIEWRENDER_LIBRARY_NAME=libgviewrender GVIEWRENDER_LD_NAME=gviewrender #release versioning GVIEWRENDER_MAJOR_VERSION=1 GVIEWRENDER_MINOR_VERSION=1 GVIEWRENDER_MICRO_VERSION=0 #API version (SONAME) GVIEWRENDER_API_VERSION=$GVIEWRENDER_MAJOR_VERSION.$GVIEWRENDER_MINOR_VERSION #shared library versioning GVIEWRENDER_LIBRARY_VERSION=$GVIEWRENDER_MAJOR_VERSION:$GVIEWRENDER_MINOR_VERSION:$GVIEWRENDER_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable sdl2 support" >&5 $as_echo_n "checking if you want to enable sdl2 support... " >&6; } # Check whether --enable-sdl2 was given. if test "${enable_sdl2+set}" = set; then : enableval=$enable_sdl2; enable_sdl2=$enableval else enable_sdl2=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_sdl2" >&5 $as_echo "$enable_sdl2" >&6; } if test $enable_sdl2 = yes; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWRENDER" >&5 $as_echo_n "checking for GVIEWRENDER... " >&6; } if test -n "$GVIEWRENDER_CFLAGS"; then pkg_cv_GVIEWRENDER_CFLAGS="$GVIEWRENDER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "sdl2 >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWRENDER_CFLAGS=`$PKG_CONFIG --cflags "sdl2 >= 2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GVIEWRENDER_LIBS"; then pkg_cv_GVIEWRENDER_LIBS="$GVIEWRENDER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl2 >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "sdl2 >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWRENDER_LIBS=`$PKG_CONFIG --libs "sdl2 >= 2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl2 >= 2.0" 2>&1` else GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl2 >= 2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GVIEWRENDER_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (sdl2 >= 2.0) were not met: $GVIEWRENDER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS and GVIEWRENDER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS and GVIEWRENDER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GVIEWRENDER_CFLAGS=$pkg_cv_GVIEWRENDER_CFLAGS GVIEWRENDER_LIBS=$pkg_cv_GVIEWRENDER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi $as_echo "#define ENABLE_SDL2 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sdl2 disabled... sdl1.2 will be used instead." >&5 $as_echo "$as_me: WARNING: sdl2 disabled... sdl1.2 will be used instead." >&2;} pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWRENDER" >&5 $as_echo_n "checking for GVIEWRENDER... " >&6; } if test -n "$GVIEWRENDER_CFLAGS"; then pkg_cv_GVIEWRENDER_CFLAGS="$GVIEWRENDER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWRENDER_CFLAGS=`$PKG_CONFIG --cflags "sdl >= 1.2.10" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GVIEWRENDER_LIBS"; then pkg_cv_GVIEWRENDER_LIBS="$GVIEWRENDER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWRENDER_LIBS=`$PKG_CONFIG --libs "sdl >= 1.2.10" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl >= 1.2.10" 2>&1` else GVIEWRENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl >= 1.2.10" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GVIEWRENDER_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (sdl >= 1.2.10) were not met: $GVIEWRENDER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS and GVIEWRENDER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GVIEWRENDER_CFLAGS and GVIEWRENDER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GVIEWRENDER_CFLAGS=$pkg_cv_GVIEWRENDER_CFLAGS GVIEWRENDER_LIBS=$pkg_cv_GVIEWRENDER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi if test $enable_sdl2 = yes; then ENABLE_SDL2_TRUE= ENABLE_SDL2_FALSE='#' else ENABLE_SDL2_TRUE='#' ENABLE_SDL2_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable gsl support" >&5 $as_echo_n "checking if you want to enable gsl support... " >&6; } # Check whether --enable-gsl was given. if test "${enable_gsl+set}" = set; then : enableval=$enable_gsl; enable_gsl=$enableval else enable_gsl=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gsl" >&5 $as_echo "$enable_gsl" >&6; } if test $enable_gsl = yes; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSL" >&5 $as_echo_n "checking for GSL... " >&6; } if test -n "$GSL_CFLAGS"; then pkg_cv_GSL_CFLAGS="$GSL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gsl >= 1.15\""; } >&5 ($PKG_CONFIG --exists --print-errors "gsl >= 1.15") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSL_CFLAGS=`$PKG_CONFIG --cflags "gsl >= 1.15" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GSL_LIBS"; then pkg_cv_GSL_LIBS="$GSL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gsl >= 1.15\""; } >&5 ($PKG_CONFIG --exists --print-errors "gsl >= 1.15") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSL_LIBS=`$PKG_CONFIG --libs "gsl >= 1.15" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gsl >= 1.15" 2>&1` else GSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gsl >= 1.15" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GSL_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gsl >= 1.15) were not met: $GSL_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GSL_CFLAGS and GSL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GSL_CFLAGS and GSL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GSL_CFLAGS=$pkg_cv_GSL_CFLAGS GSL_LIBS=$pkg_cv_GSL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi $as_echo "#define HAS_GSL 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libgsl disabled... some render fx filters will be disabled." >&5 $as_echo "$as_me: WARNING: libgsl disabled... some render fx filters will be disabled." >&2;} fi GVIEWAUDIO_LIBRARY_NAME=libgviewaudio GVIEWAUDIO_LD_NAME=gviewaudio #release versioning GVIEWAUDIO_MAJOR_VERSION=1 GVIEWAUDIO_MINOR_VERSION=1 GVIEWAUDIO_MICRO_VERSION=0 #API version (SONAME) GVIEWAUDIO_API_VERSION=$GVIEWAUDIO_MAJOR_VERSION.$GVIEWAUDIO_MINOR_VERSION #shared library versioning GVIEWAUDIO_LIBRARY_VERSION=$GVIEWAUDIO_MAJOR_VERSION:$GVIEWAUDIO_MINOR_VERSION:$GVIEWAUDIO_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWAUDIO" >&5 $as_echo_n "checking for GVIEWAUDIO... " >&6; } if test -n "$GVIEWAUDIO_CFLAGS"; then pkg_cv_GVIEWAUDIO_CFLAGS="$GVIEWAUDIO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWAUDIO_CFLAGS=`$PKG_CONFIG --cflags "portaudio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GVIEWAUDIO_LIBS"; then pkg_cv_GVIEWAUDIO_LIBS="$GVIEWAUDIO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWAUDIO_LIBS=`$PKG_CONFIG --libs "portaudio-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GVIEWAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "portaudio-2.0" 2>&1` else GVIEWAUDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "portaudio-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GVIEWAUDIO_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (portaudio-2.0) were not met: $GVIEWAUDIO_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GVIEWAUDIO_CFLAGS and GVIEWAUDIO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GVIEWAUDIO_CFLAGS and GVIEWAUDIO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GVIEWAUDIO_CFLAGS=$pkg_cv_GVIEWAUDIO_CFLAGS GVIEWAUDIO_LIBS=$pkg_cv_GVIEWAUDIO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable pulse support" >&5 $as_echo_n "checking if you want to enable pulse support... " >&6; } # Check whether --enable-pulse was given. if test "${enable_pulse+set}" = set; then : enableval=$enable_pulse; enable_pulse=$enableval else enable_pulse=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pulse" >&5 $as_echo "$enable_pulse" >&6; } if test $enable_pulse = yes; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE" >&5 $as_echo_n "checking for PULSE... " >&6; } if test -n "$PULSE_CFLAGS"; then pkg_cv_PULSE_CFLAGS="$PULSE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PULSE_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.15" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PULSE_LIBS"; then pkg_cv_PULSE_LIBS="$PULSE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.15\""; } >&5 ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.15") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PULSE_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.15" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PULSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` else PULSE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse >= 0.9.15" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PULSE_PKG_ERRORS" >&5 has_pulse=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } has_pulse=no else PULSE_CFLAGS=$pkg_cv_PULSE_CFLAGS PULSE_LIBS=$pkg_cv_PULSE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } has_pulse=yes fi if test "$has_pulse" = yes; then $as_echo "#define HAS_PULSEAUDIO 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libpulse missing... pulse support will be disabled." >&5 $as_echo "$as_me: WARNING: libpulse missing... pulse support will be disabled." >&2;}; enable_pulse=no fi fi if test $enable_pulse = yes; then HAVE_PULSEAUDIO_TRUE= HAVE_PULSEAUDIO_FALSE='#' else HAVE_PULSEAUDIO_TRUE='#' HAVE_PULSEAUDIO_FALSE= fi GVIEWENCODER_LIBRARY_NAME=libgviewencoder GVIEWENCODER_LD_NAME=gviewencoder #release versioning GVIEWENCODER_MAJOR_VERSION=1 GVIEWENCODER_MINOR_VERSION=1 GVIEWENCODER_MICRO_VERSION=0 #API version (SONAME) GVIEWENCODER_API_VERSION=$GVIEWENCODER_MAJOR_VERSION.$GVIEWENCODER_MINOR_VERSION #shared library versioning GVIEWENCODER_LIBRARY_VERSION=$GVIEWENCODER_MAJOR_VERSION:$GVIEWENCODER_MINOR_VERSION:$GVIEWENCODER_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GVIEWENCODER" >&5 $as_echo_n "checking for GVIEWENCODER... " >&6; } if test -n "$GVIEWENCODER_CFLAGS"; then pkg_cv_GVIEWENCODER_CFLAGS="$GVIEWENCODER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavutil\""; } >&5 ($PKG_CONFIG --exists --print-errors "libavcodec, libavutil") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWENCODER_CFLAGS=`$PKG_CONFIG --cflags "libavcodec, libavutil" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GVIEWENCODER_LIBS"; then pkg_cv_GVIEWENCODER_LIBS="$GVIEWENCODER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavcodec, libavutil\""; } >&5 ($PKG_CONFIG --exists --print-errors "libavcodec, libavutil") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GVIEWENCODER_LIBS=`$PKG_CONFIG --libs "libavcodec, libavutil" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GVIEWENCODER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libavcodec, libavutil" 2>&1` else GVIEWENCODER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libavcodec, libavutil" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GVIEWENCODER_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libavcodec, libavutil) were not met: $GVIEWENCODER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GVIEWENCODER_CFLAGS and GVIEWENCODER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GVIEWENCODER_CFLAGS and GVIEWENCODER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GVIEWENCODER_CFLAGS=$pkg_cv_GVIEWENCODER_CFLAGS GVIEWENCODER_LIBS=$pkg_cv_GVIEWENCODER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi for ac_header in libavutil/version.h do : ac_fn_c_check_header_compile "$LINENO" "libavutil/version.h" "ac_cv_header_libavutil_version_h" "#ifdef HAVE_LIBAVUTIL_VERSION_H #include #endif " if test "x$ac_cv_header_libavutil_version_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBAVUTIL_VERSION_H 1 _ACEOF fi done pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUVCVIEW" >&5 $as_echo_n "checking for GUVCVIEW... " >&6; } if test -n "$GUVCVIEW_CFLAGS"; then pkg_cv_GUVCVIEW_CFLAGS="$GUVCVIEW_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GUVCVIEW_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GUVCVIEW_LIBS"; then pkg_cv_GUVCVIEW_LIBS="$GUVCVIEW_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GUVCVIEW_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GUVCVIEW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>&1` else GUVCVIEW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GUVCVIEW_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0) were not met: $GUVCVIEW_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GUVCVIEW_CFLAGS and GUVCVIEW_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GUVCVIEW_CFLAGS and GUVCVIEW_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GUVCVIEW_CFLAGS=$pkg_cv_GUVCVIEW_CFLAGS GUVCVIEW_LIBS=$pkg_cv_GUVCVIEW_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi for ac_func in fpathconf dirfd do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable debian menu" >&5 $as_echo_n "checking if you want to enable debian menu... " >&6; } # Check whether --enable-debian-menu was given. if test "${enable_debian_menu+set}" = set; then : enableval=$enable_debian_menu; enable_debian_menu=$enableval else enable_debian_menu=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debian_menu" >&5 $as_echo "$enable_debian_menu" >&6; } if test "$enable_debian_menu" = yes; then DEBIAN_MENU_TRUE= DEBIAN_MENU_FALSE='#' else DEBIAN_MENU_TRUE='#' DEBIAN_MENU_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if you want to enable desktop file" >&5 $as_echo_n "checking if you want to enable desktop file... " >&6; } # Check whether --enable-desktop was given. if test "${enable_desktop+set}" = set; then : enableval=$enable_desktop; enable_desktop=$enableval else enable_desktop=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_desktop" >&5 $as_echo "$enable_desktop" >&6; } if test "$enable_desktop" = yes; then DESKTOP_TRUE= DESKTOP_FALSE='#' else DESKTOP_TRUE='#' DESKTOP_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac ac_config_files="$ac_config_files Makefile pkgconfig/libgviewv4l2core.pc pkgconfig/libgviewaudio.pc pkgconfig/libgviewrender.pc pkgconfig/libgviewencoder.pc gview_v4l2core/Makefile gview_audio/Makefile gview_render/Makefile gview_encoder/Makefile guvcview/Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.appdata.xml.in data/guvcview.in po/Makefile.in po/gview_v4l2core/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } ac_config_commands="$ac_config_commands po/stamp-it" ac_config_commands="$ac_config_commands po/gview_v4l2core/stamp-it" if test -z "${ENABLE_SDL2_TRUE}" && test -z "${ENABLE_SDL2_FALSE}"; then as_fn_error $? "conditional \"ENABLE_SDL2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PULSEAUDIO_TRUE}" && test -z "${HAVE_PULSEAUDIO_FALSE}"; then as_fn_error $? "conditional \"HAVE_PULSEAUDIO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${DEBIAN_MENU_TRUE}" && test -z "${DEBIAN_MENU_FALSE}"; then as_fn_error $? "conditional \"DEBIAN_MENU\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${DESKTOP_TRUE}" && test -z "${DESKTOP_FALSE}"; then as_fn_error $? "conditional \"DESKTOP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by guvcview $as_me 2.0.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ guvcview config.status 2.0.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "pkgconfig/libgviewv4l2core.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewv4l2core.pc" ;; "pkgconfig/libgviewaudio.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewaudio.pc" ;; "pkgconfig/libgviewrender.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewrender.pc" ;; "pkgconfig/libgviewencoder.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/libgviewencoder.pc" ;; "gview_v4l2core/Makefile") CONFIG_FILES="$CONFIG_FILES gview_v4l2core/Makefile" ;; "gview_audio/Makefile") CONFIG_FILES="$CONFIG_FILES gview_audio/Makefile" ;; "gview_render/Makefile") CONFIG_FILES="$CONFIG_FILES gview_render/Makefile" ;; "gview_encoder/Makefile") CONFIG_FILES="$CONFIG_FILES gview_encoder/Makefile" ;; "guvcview/Makefile") CONFIG_FILES="$CONFIG_FILES guvcview/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/guvcview.desktop.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.desktop.in" ;; "data/guvcview.appdata.xml.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.appdata.xml.in" ;; "data/guvcview.in") CONFIG_FILES="$CONFIG_FILES data/guvcview.in" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po/gview_v4l2core/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/gview_v4l2core/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; "po/gview_v4l2core/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/gview_v4l2core/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; "po/gview_v4l2core/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/gview_v4l2core/Makefile.in" > /dev/null ; then as_fn_error $? "po/gview_v4l2core/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/gview_v4l2core/stamp-it" "po/gview_v4l2core/stamp-it.tmp" "po/gview_v4l2core/POTFILES" "po/gview_v4l2core/Makefile.tmp" >"po/gview_v4l2core/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/gview_v4l2core/POTFILES.in" | sed '$!s/$/ \\/' >"po/gview_v4l2core/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/gview_v4l2core/POTFILES } ' "po/gview_v4l2core/Makefile.in" >"po/gview_v4l2core/Makefile" rm -f "po/gview_v4l2core/Makefile.tmp" mv "po/gview_v4l2core/stamp-it.tmp" "po/gview_v4l2core/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: guvcview $VERSION ---------------------- Prefix : ${prefix} Pulseaudio : ${enable_pulse} internal format : ${yuv_format} gsl : ${enable_gsl} sdl2 : ${enable_sdl2} mjpg decoder : ${mjpg_decoder} desktop file : ${enable_desktop} debian menu : ${enable_debian_menu} " >&5 $as_echo "$as_me: guvcview $VERSION ---------------------- Prefix : ${prefix} Pulseaudio : ${enable_pulse} internal format : ${yuv_format} gsl : ${enable_gsl} sdl2 : ${enable_sdl2} mjpg decoder : ${mjpg_decoder} desktop file : ${enable_desktop} debian menu : ${enable_debian_menu} " >&6;} guvcview-2.0.2+debian/configure.ac000077500000000000000000000404341256377215300171010ustar00rootroot00000000000000dnl Process this file with autoconf to produce a configure script. # Save the original $CFLAGS so we can distinguish whether the user set those # in the environment, or whether autoconf added -O and -g options: ORIGINAL_CFLAGS="$CFLAGS" ORIGINAL_CPPFLAGS="$CPPFLAGS" dnl -------------------------------- dnl Initialization macros (sets PACKAGE and VERSION) dnl -------------------------------- m4_define([guvcview_major], [2]) m4_define([guvcview_minor], [0]) m4_define([guvcview_micro], [2]) m4_define([guvcview_version], [guvcview_major.guvcview_minor.guvcview_micro]) AC_INIT([guvcview], [guvcview_version], [http://guvcview.sourceforge.net/]) PACKAGE_RELEASE=2 AC_SUBST(PACKAGE_RELEASE) AC_DEFINE_UNQUOTED(PACKAGE_RELEASE,"$PACKAGE_RELEASE", 2) dnl ------------------------------------------------ dnl Pretty output dnl ------------------------------------------------ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS(config.h) AM_MAINTAINER_MODE(disable) dnl ----------------------------------------------- dnl Package release dnl ----------------------------------------------- # autoconf 2.5x defaults to no cache file; we need the cache file's information # for building the config page. But start with it empty to avoid confusion by # people who don't do a "make distclean" after applying patches. cache_file=config.cache rm -f config.cache; touch config.cache AC_PREFIX_DEFAULT(/usr/local) AC_PROG_CC AM_PROG_CC_C_O AC_HEADER_STDC AC_PROG_LIBTOOL AM_SANITY_CHECK dnl -------------------------------------------------------------------------- dnl set pthread_libs and pthread_cflags dnl -------------------------------------------------------------------------- dnl ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) ACX_PTHREAD() AC_SUBST(CFLAGS) dnl -------------------------------------------------------------------------- dnl Set gettext package name dnl -------------------------------------------------------------------------- GETTEXT_PACKAGE_V4L2CORE=gview_v4l2core AC_SUBST(GETTEXT_PACKAGE_V4L2CORE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_V4L2CORE,"$GETTEXT_PACKAGE_V4L2CORE", [gview_v4l2core]) GETTEXT_PACKAGE=guvcview AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [guvcview]) IT_PROG_INTLTOOL([0.40]) IT_PO_SUBDIR(po/gview_v4l2core) dnl -------------------------------------------------------------------------- dnl Languages supported by guvcview. dnl -------------------------------------------------------------------------- ALL_LINGUAS="bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW" AM_GLIB_GNU_GETTEXT([external]) dnl ----------------------------------------------- dnl check for some required headers dnl ----------------------------------------------- AC_STDC_HEADERS AC_HAVE_HEADERS(math.h) AC_CHECK_LIB([m],[exp],[AC_DEFINE([HAVE_EXP],[1],[libm includes exp])]) AC_CHECK_LIB([m],[roundf],[AC_DEFINE([HAVE_ROUNDF],[1],[libm includes roundf])]) AC_CHECK_LIB([m],[pow],[AC_DEFINE([HAVE_POW],[1],[libm includes pow])]) dnl ----------------------------------------------- dnl libgviewv4l2core name and version number dnl ----------------------------------------------- GVIEWV4L2CORE_LIBRARY_NAME=libgviewv4l2core AC_SUBST(GVIEWV4L2CORE_LIBRARY_NAME) GVIEWV4L2CORE_LD_NAME=gviewv4l2core AC_SUBST(GVIEWV4L2CORE_LD_NAME) #release versioning GVIEWV4L2CORE_MAJOR_VERSION=1 GVIEWV4L2CORE_MINOR_VERSION=1 GVIEWV4L2CORE_MICRO_VERSION=0 #API version (SONAME) GVIEWV4L2CORE_API_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION.$GVIEWV4L2CORE_MINOR_VERSION AC_SUBST(GVIEWV4L2CORE_API_VERSION) #shared library versioning GVIEWV4L2CORE_LIBRARY_VERSION=$GVIEWV4L2CORE_MAJOR_VERSION:$GVIEWV4L2CORE_MINOR_VERSION:$GVIEWV4L2CORE_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed AC_SUBST(GVIEWV4L2CORE_LIBRARY_VERSION) dnl -------------------------------------------------------------------------- dnl check for libgviewv4l2core dependencies dnl -------------------------------------------------------------------------- PKG_CHECK_MODULES(GVIEWV4L2CORE, [libv4l2 libudev libusb-1.0 libavcodec libpng]) AC_SUBST(GVIEWV4L2CORE_CFLAGS) AC_SUBST(GVIEWV4L2CORE_LIBS) dnl -------------------------------------------------------------------------- dnl check internal yuv format (packed yuyv - default) or planar (iyuv) dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable yuyv (packed) as internal format) AC_ARG_ENABLE(yuyv, AS_HELP_STRING([--enable-yuyv], [enable yuyv (packed) as internal format (default: iyuv (420 planar))]), [enable_yuyv=$enableval], [enable_yuyv=no]) AC_MSG_RESULT($enable_yuyv) if test $enable_yuyv = yes; then yuv_format=yuyv else AC_DEFINE(USE_PLANAR_YUV, 1, [set to 1 if iyuv is enabled]) yuv_format=iyuv fi dnl -------------------------------------------------------------------------- dnl Check for avcodec.h installation path dnl -------------------------------------------------------------------------- dnl Check for avcodec.h directly dnl if all tests fail must add avcodec.h path to C_INCLUDE_PATH before running configure dnl ORIGINAL_CPPFLAGS="${CPPFLAGS}" dnl make sure we search using the CFLAGS includes dnl CPPFLAGS+="${GVIEWV4L2CORE_CFLAGS}" AC_CHECK_HEADERS([libavcodec/avcodec.h ffmpeg/avcodec.h]) dnl restore CCPFLAGS to avoid redefinitions in debian build tree dnl CPPFLAGS="${ORIGINAL_CPPFLAGS}" dnl -------------------------------------------------------------------------- dnl Check if we will use libavcodec or the internal decoder for mjpeg decoding dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to use the internal mjpeg decoder over libavcodec ) AC_ARG_ENABLE(builtin-mjpg, AS_HELP_STRING([--enable-builtin-mjpg], [enable builtin mjpg decoder support (default: disabled)]), [enable_builtin_mjpg=$enableval], [enable_builtin_mjpg=no]) AC_MSG_RESULT($enable_builtin_mjpg) if test $enable_builtin_mjpg = yes; then AC_DEFINE(MJPG_BUILTIN, 1, [set to 1 if builtin decoder is enabled]) AC_MSG_WARN(libavcodec mjpg decoder disabled... the builtin decoder will be used instead.) mjpg_decoder=builtin else mjpg_decoder=libavcodec fi dnl ----------------------------------------------- dnl libgviewrender name and version number dnl ----------------------------------------------- GVIEWRENDER_LIBRARY_NAME=libgviewrender AC_SUBST(GVIEWRENDER_LIBRARY_NAME) GVIEWRENDER_LD_NAME=gviewrender AC_SUBST(GVIEWRENDER_LD_NAME) #release versioning GVIEWRENDER_MAJOR_VERSION=1 GVIEWRENDER_MINOR_VERSION=1 GVIEWRENDER_MICRO_VERSION=0 #API version (SONAME) GVIEWRENDER_API_VERSION=$GVIEWRENDER_MAJOR_VERSION.$GVIEWRENDER_MINOR_VERSION AC_SUBST(GVIEWRENDER_API_VERSION) #shared library versioning GVIEWRENDER_LIBRARY_VERSION=$GVIEWRENDER_MAJOR_VERSION:$GVIEWRENDER_MINOR_VERSION:$GVIEWRENDER_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed AC_SUBST(GVIEWRENDER_LIBRARY_VERSION) dnl -------------------------------------------------------------------------- dnl check for libgviewrender dependencies dnl -------------------------------------------------------------------------- dnl -------------------------------------------------------------------------- dnl Check for prefered sdl version (1 or 2) dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable sdl2 support) AC_ARG_ENABLE(sdl2, AS_HELP_STRING([--disable-sdl2], [disable sdl2 support (default: enabled)]), [enable_sdl2=$enableval], [enable_sdl2=yes]) AC_MSG_RESULT($enable_sdl2) if test $enable_sdl2 = yes; then PKG_CHECK_MODULES(GVIEWRENDER, [sdl2 >= 2.0]) AC_SUBST(GVIEWRENDER_CFLAGS) AC_SUBST(GVIEWRENDER_LIBS) AC_DEFINE(ENABLE_SDL2, 1, [set to 1 if sdl2 is enabled]) else AC_MSG_WARN(sdl2 disabled... sdl1.2 will be used instead.) PKG_CHECK_MODULES(GVIEWRENDER, [sdl >= 1.2.10]) AC_SUBST(GVIEWRENDER_CFLAGS) AC_SUBST(GVIEWRENDER_LIBS) fi AM_CONDITIONAL(ENABLE_SDL2, test $enable_sdl2 = yes) dnl -------------------------------------------------------------------------- dnl Check for gsl (gnu random generator) used by render fx dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable gsl support) AC_ARG_ENABLE(gsl, AS_HELP_STRING([--disable-gsl], [disable gsl support (default: enabled)]), [enable_gsl=$enableval], [enable_gsl=yes]) AC_MSG_RESULT($enable_gsl) if test $enable_gsl = yes; then dnl AX_PATH_GSL( dnl 1.15, dnl AC_DEFINE(HAS_GSL, 1, [set to 1 if gsl is enabled]), dnl AC_MSG_WARN(libgsl not found... some render fx filters will be disabled.)) PKG_CHECK_MODULES(GSL, [gsl >= 1.15]) AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) AC_DEFINE(HAS_GSL, 1, [set to 1 if gsl is enabled]) else AC_MSG_WARN(libgsl disabled... some render fx filters will be disabled.) fi dnl ----------------------------------------------- dnl libgviewaudio name and version number dnl ----------------------------------------------- GVIEWAUDIO_LIBRARY_NAME=libgviewaudio AC_SUBST(GVIEWAUDIO_LIBRARY_NAME) GVIEWAUDIO_LD_NAME=gviewaudio AC_SUBST(GVIEWAUDIO_LD_NAME) #release versioning GVIEWAUDIO_MAJOR_VERSION=1 GVIEWAUDIO_MINOR_VERSION=1 GVIEWAUDIO_MICRO_VERSION=0 #API version (SONAME) GVIEWAUDIO_API_VERSION=$GVIEWAUDIO_MAJOR_VERSION.$GVIEWAUDIO_MINOR_VERSION AC_SUBST(GVIEWAUDIO_API_VERSION) #shared library versioning GVIEWAUDIO_LIBRARY_VERSION=$GVIEWAUDIO_MAJOR_VERSION:$GVIEWAUDIO_MINOR_VERSION:$GVIEWAUDIO_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed AC_SUBST(GVIEWAUDIO_LIBRARY_VERSION) dnl -------------------------------------------------------------------------- dnl check for libgviewaudio dependencies dnl -------------------------------------------------------------------------- PKG_CHECK_MODULES(GVIEWAUDIO, [portaudio-2.0]) AC_SUBST(GVIEWAUDIO_CFLAGS) AC_SUBST(GVIEWAUDIO_LIBS) dnl -------------------------------------------------------------------------- dnl Check for pulseaudio dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable pulse support) AC_ARG_ENABLE(pulse, AS_HELP_STRING([--disable-pulse], [disable pulseaudio support (default: enabled)]), [enable_pulse=$enableval], [enable_pulse=yes]) AC_MSG_RESULT($enable_pulse) if test $enable_pulse = yes; then PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.15, has_pulse=yes, has_pulse=no) AC_SUBST(PULSE_CFLAGS) AC_SUBST(PULSE_LIBS) if test "$has_pulse" = yes; then AC_DEFINE(HAS_PULSEAUDIO, 1, [set to 1 if pulseaudio installed]) else AC_MSG_WARN(libpulse missing... pulse support will be disabled.); enable_pulse=no fi fi AM_CONDITIONAL(HAVE_PULSEAUDIO, test $enable_pulse = yes) dnl ----------------------------------------------- dnl libgviewencoder name and version number dnl ----------------------------------------------- GVIEWENCODER_LIBRARY_NAME=libgviewencoder AC_SUBST(GVIEWENCODER_LIBRARY_NAME) GVIEWENCODER_LD_NAME=gviewencoder AC_SUBST(GVIEWENCODER_LD_NAME) #release versioning GVIEWENCODER_MAJOR_VERSION=1 GVIEWENCODER_MINOR_VERSION=1 GVIEWENCODER_MICRO_VERSION=0 #API version (SONAME) GVIEWENCODER_API_VERSION=$GVIEWENCODER_MAJOR_VERSION.$GVIEWENCODER_MINOR_VERSION AC_SUBST(GVIEWENCODER_API_VERSION) #shared library versioning GVIEWENCODER_LIBRARY_VERSION=$GVIEWENCODER_MAJOR_VERSION:$GVIEWENCODER_MINOR_VERSION:$GVIEWENCODER_MICRO_VERSION # # current:revision:age # | | | # | | +- increment if interfaces have been added # | | set to zero if interfaces have been removed # or changed # | +- increment if source code has changed # | set to zero if current is incremented # +- increment if interfaces have been added, removed or changed AC_SUBST(GVIEWENCODER_LIBRARY_VERSION) dnl -------------------------------------------------------------------------- dnl check for libgviewencoder dependencies dnl -------------------------------------------------------------------------- PKG_CHECK_MODULES(GVIEWENCODER, [libavcodec, libavutil]) AC_SUBST(GVIEWENCODER_CFLAGS) AC_SUBST(GVIEWENCODER_LIBS) dnl -------------------------------------------------------------------------- dnl Check for libavutil/version.h dnl -------------------------------------------------------------------------- AC_CHECK_HEADERS([libavutil/version.h], [], [], [[#ifdef HAVE_LIBAVUTIL_VERSION_H #include #endif ]]) dnl -------------------------------------------------------------------------- dnl check for guvcview dependencies dnl -------------------------------------------------------------------------- PKG_CHECK_MODULES(GUVCVIEW, [gtk+-3.0 >= 3.0.0 glib-2.0 >= 2.10.0]) AC_SUBST(GUVCVIEW_CFLAGS) AC_SUBST(GUVCVIEW_LIBS) AC_CHECK_FUNCS([fpathconf dirfd]) dnl -------------------------------------------------------------------------- dnl set/unset debian menu dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable debian menu) AC_ARG_ENABLE(debian-menu, AS_HELP_STRING([--disable-debian-menu], [disable debian menu (default: enabled)]), [enable_debian_menu=$enableval], [enable_debian_menu=yes]) AC_MSG_RESULT($enable_debian_menu) AM_CONDITIONAL(DEBIAN_MENU, test "$enable_debian_menu" = yes) dnl -------------------------------------------------------------------------- dnl set/unset desktop file dnl -------------------------------------------------------------------------- AC_MSG_CHECKING(if you want to enable desktop file) AC_ARG_ENABLE(desktop, AS_HELP_STRING([--disable-desktop], [disable desktop file (default: enabled)]), [enable_desktop=$enableval], [enable_desktop=yes]) AC_MSG_RESULT($enable_desktop) AM_CONDITIONAL(DESKTOP, test "$enable_desktop" = yes) dnl -------------------------------------------------------------------------- dnl Check if the processor stores words with the most significant byte first dnl (like Motorola and SPARC, unlike Intel and VAX). dnl -------------------------------------------------------------------------- AC_C_BIGENDIAN dnl ----------------------------------------------- dnl Generates Makefiles, configuration files and scripts dnl ----------------------------------------------- AC_CONFIG_FILES([ Makefile pkgconfig/libgviewv4l2core.pc pkgconfig/libgviewaudio.pc pkgconfig/libgviewrender.pc pkgconfig/libgviewencoder.pc gview_v4l2core/Makefile gview_audio/Makefile gview_render/Makefile gview_encoder/Makefile guvcview/Makefile data/Makefile data/icons/Makefile data/guvcview.desktop.in data/guvcview.appdata.xml.in data/guvcview.in po/Makefile.in po/gview_v4l2core/Makefile.in ]) AC_OUTPUT dnl Output the results AC_MSG_NOTICE([ guvcview $VERSION ---------------------- Prefix : ${prefix} Pulseaudio : ${enable_pulse} internal format : ${yuv_format} gsl : ${enable_gsl} sdl2 : ${enable_sdl2} mjpg decoder : ${mjpg_decoder} desktop file : ${enable_desktop} debian menu : ${enable_debian_menu} ]) guvcview-2.0.2+debian/data/000077500000000000000000000000001256377215300155145ustar00rootroot00000000000000guvcview-2.0.2+debian/data/Makefile.am000066400000000000000000000015571256377215300175600ustar00rootroot00000000000000SUBDIRS = icons @INTLTOOL_DESKTOP_RULE@ @INTLTOOL_XML_RULE@ dist_man_MANS = guvcview.1 if DEBIAN_MENU MENU_IN_FILES= guvcview.in MENU_FILES= guvcview $(MENU_FILES): $(MENU_IN_FILES) cp $? $@ menudir = ${datadir}/menu menu_DATA = $(MENU_FILES) endif if DESKTOP DESKTOP_IN_FILES= guvcview.desktop.in DESKTOP_FILES= $(DESKTOP_IN_FILES:.desktop.in=.desktop) desktopdir = $(datadir)/applications desktop_DATA = $(DESKTOP_FILES) APPDATA_IN_FILES= guvcview.appdata.xml.in APPDATA_FILES= $(APPDATA_IN_FILES:.xml.in=.xml) appdatadir = $(datadir)/appdata appdata_DATA = $(APPDATA_FILES) endif CLEANFILES = \ $(menu_DATA)\ $(desktop_DATA) \ $(appdata_DATA) EXTRA_DIST = \ $(APPDATA_IN_FILES) \ $(DESKTOP_IN_FILES)\ $(MENU_IN_FILES) clean-generic: test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) guvcview-2.0.2+debian/data/Makefile.in000066400000000000000000000673371256377215300176010ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/guvcview.desktop.in.in \ $(srcdir)/guvcview.appdata.xml.in.in $(srcdir)/guvcview.in.in \ $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = guvcview.desktop.in guvcview.appdata.xml.in \ guvcview.in CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(appdatadir)" \ "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(menudir)" NROFF = nroff MANS = $(dist_man_MANS) DATA = $(appdata_DATA) $(desktop_DATA) $(menu_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons dist_man_MANS = guvcview.1 @DEBIAN_MENU_TRUE@MENU_IN_FILES = guvcview.in @DEBIAN_MENU_TRUE@MENU_FILES = guvcview @DEBIAN_MENU_TRUE@menudir = ${datadir}/menu @DEBIAN_MENU_TRUE@menu_DATA = $(MENU_FILES) @DESKTOP_TRUE@DESKTOP_IN_FILES = guvcview.desktop.in @DESKTOP_TRUE@DESKTOP_FILES = $(DESKTOP_IN_FILES:.desktop.in=.desktop) @DESKTOP_TRUE@desktopdir = $(datadir)/applications @DESKTOP_TRUE@desktop_DATA = $(DESKTOP_FILES) @DESKTOP_TRUE@APPDATA_IN_FILES = guvcview.appdata.xml.in @DESKTOP_TRUE@APPDATA_FILES = $(APPDATA_IN_FILES:.xml.in=.xml) @DESKTOP_TRUE@appdatadir = $(datadir)/appdata @DESKTOP_TRUE@appdata_DATA = $(APPDATA_FILES) CLEANFILES = \ $(menu_DATA)\ $(desktop_DATA) \ $(appdata_DATA) EXTRA_DIST = \ $(APPDATA_IN_FILES) \ $(DESKTOP_IN_FILES)\ $(MENU_IN_FILES) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): guvcview.desktop.in: $(top_builddir)/config.status $(srcdir)/guvcview.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ guvcview.appdata.xml.in: $(top_builddir)/config.status $(srcdir)/guvcview.appdata.xml.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ guvcview.in: $(top_builddir)/config.status $(srcdir)/guvcview.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-appdataDATA: $(appdata_DATA) @$(NORMAL_INSTALL) @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \ done uninstall-appdataDATA: @$(NORMAL_UNINSTALL) @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) install-menuDATA: $(menu_DATA) @$(NORMAL_INSTALL) @list='$(menu_DATA)'; test -n "$(menudir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(menudir)'"; \ $(MKDIR_P) "$(DESTDIR)$(menudir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(menudir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(menudir)" || exit $$?; \ done uninstall-menuDATA: @$(NORMAL_UNINSTALL) @list='$(menu_DATA)'; test -n "$(menudir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(menudir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(menudir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-appdataDATA install-desktopDATA install-man \ install-menuDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-appdataDATA uninstall-desktopDATA \ uninstall-man uninstall-menuDATA uninstall-man: uninstall-man1 .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-appdataDATA install-data \ install-data-am install-desktopDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-menuDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-appdataDATA uninstall-desktopDATA \ uninstall-man uninstall-man1 uninstall-menuDATA @INTLTOOL_DESKTOP_RULE@ @INTLTOOL_XML_RULE@ @DEBIAN_MENU_TRUE@$(MENU_FILES): $(MENU_IN_FILES) @DEBIAN_MENU_TRUE@ cp $? $@ clean-generic: test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES); \ test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/data/guvcview.1000066400000000000000000000043221256377215300174360ustar00rootroot00000000000000.TH GUVCVIEW "1" "Aug 2009" .SH NAME guvcview \- GTK+ base UVC Viewer .SH SYNOPSIS .B guvcview .SH DESCRIPTION \fBGuvcview\fR is a simple GTK+ interface for capturing and viewing video from devices supported by the Linux UVC driver. It fully supports video4linux2 so it should work with any driver that supports this API, including the gspca driver. .SH USAGE .TP guvcview [options...] .SH OPTION \-?, \-\-help Print help options \-\-help\-all Print all help options \-\-help\-gtk Print GTK+ options \-\-version Print version number Application options: \-v, \-\-verbose Prints a lot of debug information \-d, \-\-device=VIDEO_DEVICE Video Device [default: /dev/video0] \-a, \-\-add_ctrls Exits after adding dynamic controls to the uvc driver (needs root/sudo) \-o, \-\-control_only Don't stream video (image controls only) \-r, \-\-capture_method=[1|2] Capture method (1-mmap (default) 2-read) \-g, \-\-config=FILENAME Configuration File \-w, \-\-hwd_acel=[1|0] Hardware accelaration: (enable(1) | disable(0)) \-f, \-\-format=FORMAT Video input format: mjpg | jpeg | yuyv | yvyu | uyvy | yyuv | yu12 | yv12 | nv12 | nv21 | nv16 | nv61 | y11p | grey | s501 | s505 | s508 | gbrg | grbg | ba81 | rggb | bgr3 | rgb3 | \-s, \-\-size=WIDTHxHEIGHT Resolution, default: 640x480 \-i, \-\-image=FILENAME Image File \-c, \-\-cap_time=TIME Time elapsed between image captures \-m, \-\-npics=NUMPIC Number of images to capture \-n, \-\-video=FILENAME Video File (capture from start) \-t, \-\-vid_time=TIME Video duration (in seconds) \-\-exit_on_close Exits guvcview after closing video \-j, \-\-skip=N_FRAMES Number of inital frames to skip \-p, \-\-show_fps=[1|0] Print FPS on video Window: (enable(1) | disable(0)) \-l, \-\-profile=FILENAME Load profile .SH AUTHOR This manual page was written by Paulo Assis , for the Debian GNU/Linux system (but may be used by others). guvcview-2.0.2+debian/data/guvcview.appdata.xml.in.in000066400000000000000000000030511256377215300225170ustar00rootroot00000000000000 guvcview.desktop CC0-1.0 GPL-2.0+ Gtk+ UVC Viewer <_summary>capture video from v4l2 devices <_p> Video capture tool for video4linux2 compliant cameras, with special emphasis on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, flv1, wmv1, mpg2, mpg4,...) capture with sound in several formats( currently: avi and matroska). I also supports a control panel option (--control_only) that is compatible with any other v4l2 app. https://sourceforge.net/p/guvcview/screenshot/guvcview_image_tab.png https://sourceforge.net/p/guvcview/screenshot/guvcview_h264_tab.png https://sourceforge.net/p/guvcview/screenshot/guvcview_video_tab.png https://sourceforge.net/p/guvcview/screenshot/guvcview_audio_tab.png https://a.fsdn.com/con/app/proj/guvcview/screenshots/guvcview_video_preview.png http://guvcview.sourceforge.net/ assisp@gmail.com guvcview-2.0.2+debian/data/guvcview.desktop.in.in000066400000000000000000000005471256377215300217660ustar00rootroot00000000000000[Desktop Entry] _Name=guvcview _GenericName=GTK UVC video viewer _X-GNOME-FullName=GTK UVC video viewer _Comment=A video viewer and capturer for the linux uvc driver TryExec=guvcview Exec=guvcview Icon=@prefix@/share/pixmaps/guvcview/guvcview.png Terminal=false Type=Application Categories=Video;AudioVideo; X-GNOME-Gettext-Domain=guvcview StartupNotify=true guvcview-2.0.2+debian/data/guvcview.in.in000066400000000000000000000003341256377215300203100ustar00rootroot00000000000000?package(guvcview):\ needs="X11"\ section="Applications/Video"\ title="guvcview"\ longtitle="GTK UVC Viewer - uvc video viewer and capturer"\ command="guvcview"\ icon="@prefix@/share/pixmaps/guvcview/guvcview.png" guvcview-2.0.2+debian/data/icons/000077500000000000000000000000001256377215300166275ustar00rootroot00000000000000guvcview-2.0.2+debian/data/icons/Makefile.am000066400000000000000000000011341256377215300206620ustar00rootroot00000000000000iconsdir = ${datadir}/pixmaps/guvcview icons_DATA = \ guvcview.png\ camera.png\ movie.png\ image_controls.png\ video_controls.png\ audio_controls.png\ close.png gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/pixmaps/guvcview/ install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi EXTRA_DIST = $(icons_DATA) guvcview-2.0.2+debian/data/icons/Makefile.in000066400000000000000000000420301256377215300206730ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ iconsdir = ${datadir}/pixmaps/guvcview icons_DATA = \ guvcview.png\ camera.png\ movie.png\ image_controls.png\ video_controls.png\ audio_controls.png\ close.png gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/pixmaps/guvcview/ EXTRA_DIST = $(icons_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-hook install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-hook uninstall-iconsDATA install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/data/icons/audio_controls.png000066400000000000000000000031601256377215300223610ustar00rootroot00000000000000PNG  IHDR00` sRGBPLTEIA@@::568333 BBBIA@@:::::BBB333 :::;:1333!!!BBB:::333(""2++ ))) :::568 :::333("" 333 333)))!!! )))("" !!!! xoՇuDtQz+߻-׶eխ/Ӟc̤1Ρ9ȠSƟBÛ4R9͏;\x{yfx {@z<}e}hu>|{bq;xu`oAyt]ut`oats[k;kc:{d:ldRgcLedQ\7p`=Q6c`J|[;P1t[9o[Bc[Ik[9bZEK3YZJYYCmT9mS4I7dS9XUFdT-ZSBTTG]Q8TR=SQA\N9}B>^J2sC9RK:QJ>KKBmA=JI:RG._A;LF3RD3ID:MC)JB1P?;BBBBB;D@0D>+L:8U82@;2@::A:):::;:1;9)56883)333:3$80/21$10(:,*1,$2++)))*)"3! (""!!!" ! 3(8tRNS@fbKGDH pHYs  ~tIME"QxIDATHO`w|xFO&r2΁HbrRbh$G&,hJXZkvYip.o⠃=M<<@TՋ;1lvx-QuK^p~t*0q~\QXx|dh`[m hS"  L>]õ/>jJt~1!̾z<80)G6Bgގ=3񩸼q86Q(h Pm듉 &ekC~,EUDQf"n][sEWVkjOg2޾w'qDgS)Z C4W-~oh O4Z{3'(-zhPM|?%Nmbbnϛ]-,CSL4ddv܀^T`B`ww‹7e+p(@PKW@H, "Yr l ,aY_82qMEBۀ /)R(IBR-"*uRPRѹ?LFXc٤PE *@IXEb&! pTÒQS#32lg@/z{"|{C8*:fm!2c&CFK^A'R$Pʺl^E'jUtȩGsUrse˷'{IENDB`guvcview-2.0.2+debian/data/icons/camera.png000066400000000000000000000113271256377215300205710ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME & bρWIDAThyeyu~s}[[z,鞥gqM9aqd #AYrR@(q&x<0˽ng*dāDHNw_WU_U]3n?[n-ԸzUޗYSfqv1U:4;;[ G}|}3[3x!p=I$'O=DY\|-tp|! [m~S8sӿ05|&lv{Z-SQE)Q:B t?xW ?dP+Si\ ߋY[[ua4,|1^/%IHV GE1q1u~txD/Tĵ:ʉ@*Jȳ4>c@:FD\ nxT? k*claPYqF>Y!%!BBi@љJť9łFӥVw BIH5!,a$ɽ_Ƌ?p_Ukgf*I "QHZxe4̰fBeXct͖O梫, ??G>՗_z~c o~^ h( ,Ea(EzdssvAf3+s*App*ZN=vwȵk[=AJhk!B>׿Bo* h4(bmmRU2(+%ۅ{vT;!"<Q;li&B@$e4>fffi'sl[fee0 )1/2oyDkXTԂ~w{я G <\XyXu-0]6z4Qtd0\r+pfj3*_E)p*Gcʢ s,(J\%T P`)y#tΈNXXgowȥ3O94ZfBYZ߰6'r,e8*)5Nv5iwK.^׮]CӚmqv/aF3&"0|<%"af<~x՗|~VUJGS%eɊ SU FCwIuh3Ia&y2i:ш9rl ǥg95tp9ʲ H{=yp8$3Z'ťyV~{{#z?{ {KY^*[,4Y^OۣSS2Ӫ#d+(EmoKxQb`oGUeyApS,--b1E1f0}W_{_} nTm5pgJXmcrT\+̰y9t:DK׍M0p)MYS%'} $rpѧ R]DZ4>V@h--psGN )FCFq1Dkv(WPEHB807w{9h4`mm4MѺ4,aIy緶]#O'g_ЙAސAH^e( ʁC#COn%h+Ȳ96cuH\RRGc7{5ySU5Aa*HɹS~5={#фؽ<1_gye"hD]'kqD;i ҈!~~+쐖( CJoJ p'Z1QG|gBL?ڛ7t p(kJ p Y^R9!xC4\qIЕ(2<ϧ^oZN.ݽav`RUy+[RI{,4RITfyq0o>o]z%1xFoD1SSu4jv2ƈiЙjl%FhKjd8o|kpg]WB3#,\Ψ(8tdNB-9Wt:mF]!7)+[Iɂ&0P",jcp=;ʐ,q=/_ ^M:{{c`[20O x> E9 W$xWo:đ[*8ZV`\EMw?e0ӯ`n{lqę'|_!B|\qiʡ( ߭\x͍U|cY:N,/|,yA(QdZk `ͭO!`8-R3L_N/>_&>C+Xﱹj}C-u Á‘͕7ܠÑ %%BJSn'/% @Uir7(*oI)<kEY{G7f䍙ƣzG6#ڡ \D%]|t ]ˌX<,)  lvh&1nWJͭb\k`(E>jCn z͏.F;W6ss3Mǚ<X±!p%xnl_f{E:w15Ƚ]G;L3Fz.sC|_X,K?@‘c4Qk=,[<_`7ׯ\T>ˑ],Z._9w_W*]mz/Sy-q\'Nsʥ*KF1ә*swX_g}$is[O[]M8thɓ'=x쮤9zK/}׮]x.4CG~ FdiFYFãIӔA-.8b!-b^x_47J  IY9$]Dx!LFq'?GOC?y!Jh]ДŘQba4dd4_omޙ2Fx4s'52&@rbP's33ZKJ*r$rwʳ^<_wxO1;1v+G'<S@2їOtz9=}(j:NDn.[;LZ|81 @nb"!wz0M&evn{o׫O T2q?51d؞۝9Ig@m!s{r?1ԙ(srꀞۑoŤU) u dk]zL<8%>f"wE:vb8P׹{r;1ɳy]t;z<{= ~4IENDB`guvcview-2.0.2+debian/data/icons/close.png000066400000000000000000000104731256377215300204470ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME##3/.IDATh޽mWU?cε>-P$P QH- @?GcM L$F!@yX >y^k9-s1w|wyxO_fzM4~|Aw\ccF.ǗD 1UbH1&o>ow_8q1{ZwjW~w>rjzR813D9 AP+Ibu %B{yLC>l 82AXǗ䮛և\D+Ji]s?,XX1hHSGBݐz:פSӇ;(n9;^Gn}z"N(NC9v ::weBS58ڙS UŒ/<C_u$bx^?kg~ec?K]{5#+8e%K#|IUdf " 49+f;3s 6,uJYv [o(U(ow91B_x|Yq:)()iMcƾā jYNõ+Ah9eQvjf,n{jgV|':o[[KO+Yfz0ۭi.D0F]sD>3!LC$(tL'3cTcEa߿slUG߿ڏ96'˂ޠ`'ԑz Np9$fNɅy?7{kG!2ݛ'VI*nM Ӥc|U6\_쯝Y1X1Xb"Em zvG]+="I, {8>ѺfTxkKIdĔ;7~nаPN,LHeqmHjfHY2??8ǽ繝go:I𘑍UC_=Jܷo9Cb&m-1$.OoP,1^sijGS6z^E:νՉ;HEyjລZbTʮlbm0CcJydudwM&-jC0A-8P'_}+ONԲsBY:b̫j\?)T~u6J)AaX;|1RH)dh")h;a CP[n31N΄s4Iuˎ Y,C5}[ A*@DRTB ME=ozht2gք8{u4AX;vh Y|g!DU+MPhD5lwʤM< iXyBնZ:GSS|M:B+%V(Y+3LYUJ%dL@ *(e`yKEۓ ypZ60˔vXpPԸɗ8yŲ@~d!s@7g7T$4*$TH[4pu̫@䧔gN [<}iMqƙrp`8,+:mg/<T &(4K&z%8gq[EYAq)`n%zflIIMwm!_e67'B2{Ռǫ%&☉(]|?7WJ0 M@Mńԑ ۗ'4u!)A[G6cdY6yHq46M`#/b/Mv;vJ?~oEH3S$=0hTڑv 4C$>`, N.-u.v{gӋ|1Gglno~<0k6wl-d2p / .c/ #[Wv29wH)s 4 D;j//=?ܑa)K;V[dA*NȬqɕ9X-lTihJ)\{E`_<{ؓdMrq1{6N oߏձn(J&ێj2~dT!&!$`ƌJqG20y <.k9p pT+;v{}wDaMLBH-k{>V^_%va"N:cfj^g/ݙMMg[{}>p@ ^uLޠ7D?l@Dp48AHAG#B!P;D<1uPZ3y /m&h 5~I Pz޻2=ֈt›$ 7D"T"4Q0aG23FXFg;g/ʁך[^eydΌwIENDB`guvcview-2.0.2+debian/data/icons/guvcview.png000066400000000000000000000312011256377215300211710ustar00rootroot00000000000000PNG  IHDR>asRGBbKGD pHYs B(xtIME$j3 IDATxyU?rw; EKBª Ȅm\WqøJTM >(@`$ @,N'߭y[շ;;L#}[Z{~i#m6FHi#m.j HE84G+&HD(DFK4j+г~nsFpi~=m\'їh !5,E?JпJs48jL*,DLӔxBkp'G[gM޸W{׮\gG0\G]^$'7եX1U4dڝm\7eí͟/l؅NJNb\]y4(QZ`)Zۺx7<n8~ä}TU|9}Y L^"jȹqFk=`g2$)Lclx4in3gsϖA\eN%P7c2 \!6 )0q\ml٣7zj͗Fpۼy0B ๖Id{_)0-00Jߐ~:l iάل־eݍ6… R>vԝHi!8%64>z;Zsiޗ:,1nT,M`Wո+mh7)1㿚?^!~ #޶lN? N9TJdE˷ʆli3;Г98Q](ٔ&l&-c8ox,C ䷷ʊ,[ uz9zB}[_%}Ə#>Hpr'FC^ (]ܐ]l>~g5T׬di4zo|M#b~Ti>hooy%ԧYjw=]Q!xǹ4iRVtx@oxTT%oX-l.NZ]hBCH"!c_I"3 ;$` (ƥX߲etl»w<`O !DDs>HĶNt]7dÅ"xF۶:$Rl۶ ͘5sҗyw5i^sӧMC xhu2H`?,tB&N< ֭[ hYu-}y_uħ |H$nIGO(!H `%R 0 0a"k֬F)% gUWp <" W͕W\ʻL&;F u!в.G`YiD~(:hK# v5#*޲,-gaɒ%lڼ9tyĉ[oT4&5pB֟ X L4QsSؗZ{l8tuWbO&C)WpLYa555q>Ikoo0 ݯ[,kaItytMlh3>v7M8⬀O9G!7̽2?w/x$=|8-;hI5g vo.`G6fm9Ě\t'2F~tR)n^P˶HH4`Y6i"ILKT*ŬYB`;$>OUUUX§#Wy+7x(Ò;0&stuuij$$]O5گҞڌ!|'r$ }(c.[n[!z4ÎDCt@uf3d3`ĉꗿN; ='@$RJR?;5]x#2mB̹jBӃֺO/_&iD2ɔ*7;iIpZV1sGGI!l4>o{7 JcG&M4aDHy(I$9sG>7PJh<gͫo^#D h D'?˅)S}!4 ECTrpv 0)OEH)wܷ`Axxd4X(36KF j ʷKJ :It86oЯ?*TZcBr ef>?978?'{l&7L eyޤ|PGQ!QX)Hɻ~G;ZueuuH|!1X*>mc^)О)LU`đ:bXE&`Ŋ466r>0`8@y˲0 no߆z'5kچ5wҜ|a@~ʗz %Z9#_R=jH40r(UAk@G8a"e%wt~VzRY4 C̵c{A$%IkK Z+կ/}iPPEL;u/,Ysa qrZ8Nb`wsw!U[G$$7{%\9㐲fkcfOyBed\Be܄Қo}ۜ~\pp4'Nњ 50cs*#8̳W_&/0 ή.N:d?zԌ#LU.( 嘆Czol56i" 6c(_twu߿իV,)b (F$ 'dgZk4SG9 7!e唕 X(ўƌpyS_SP(i-#H))-+,t:}_u?9~ n0XA";>+񪶲Ӈ'PI^?Ǝۇڂk׮P7 Q500LzZrEk|*]*oF(RY4, )U[ GH s\9|]@ap# |%'? "kj|ϙDJyz˯3}|R98Q -*Rb&U5+~Lb!;t\Uaj>'PFx#(6.HzGMEE%aaU |".ZtttBCV:::AB1%ɘqb"%rTUUwo+o~>_˲|UUҒa9s攀`1}P|(:Ck K;thGGf}O -[t:eYZ2C؁)2trZꤟ>`JQpl޲%O$0o~yXh 1jR==A, î놱Ҳ2nj0 r4Ÿxa.eC.Xy2ePboۑt@@0>p@/XA\?3h+ӆo@9Ryr>{tvt0vQcWjS^"2|Աf&74 Dr4C+b24iWqP2oɼ/أ|-Ysܐs]by?B n`j~:2DBwwGB1n(:ꭒE"`? ~!'¾~} O:q2Cj<<@ j:X1=0^(ߧZnװ^~_X@ Ppkk01 ;t***р O ڟ癀*W<3 .Xsع]!ͤ3b,liH!1~ _$Hi`&iǩ>{דH$LӴ1LiHDeJ;S9r^\]]= E@*.]ǰc9omݻwP^x07.d===ah8b|`?$3L)4LB4:O$8iaHB&Ұ|!W'RѓQ `qECs~?8a'~ z'QإeYLnht]yޠ4J8[8BH>08^Gٯ˄%$[ߤ)aZe$ɘ/tvrɡ`0V?ػ[a;q yjBڹ3da>Ŏ kYfaF\ץ*lvvz R A:Fu===Hida Y`*̔20ԔH)hq}i3fepŸb0A)Ec΀BMwO鴟9cY֠loN)6r:^wF2'؄0@R2Zk"nje豘R^i%- ~2ip}iPm ޵9A3OJ4 [O];C^~ q|0s jkk,](O!H> S__kaa*4Rrd29#*r <+DR2$ӦOl*0v~/[h- uׇx|P(#%'0̼}v - <񸠺2G \Ou S.==YtNs4)+(-@aAi;q[W^qE(݊!k׮ y~oD׵֬^*݉D"6ԑQ4E;7q#CJb?!,p8}5 -Gi9T#9ǡSƲ<% ߪ0et)aú0tܹ?P2`MB_je… mF=ͻiooxl6˴i ~IE'S qFwX_z),ƨuY#Pyʠ'c+])'B_ : ueώ7ő/g2/L)_@JIMMM#܌:g_5}D`퓧L9эM9cd4r!($*}˖5 iӦQYY?:;;Ƕ-ɘOl!5 ~TGHAĂdlU+?XBJA.cҗy5!/[n ֶPep@oxRر-m/zp강4e7i Tӧz aʬ%lk $ OOdO.l޼ ô٫T$cI2I$i]¤&Ԗ0*AE2iʪf ,~9Cvkkko py~! ~~---VZræ (lڸi[Iv5 @,._JݿVJ֬YîF\eΝlظ!nH$hmm,yq [l YNc~I'Z3---aÁr#2?oYYY/ٲu  ~|tX+,_tEg B;8>{ŽknnMB[ζp uyIt}WT,)2-MG{;ͤ}k_*ӗdhjj 'q'z6e붭R=LnLIIr⛦Immm(N{پMF -O|'>y]~a{0rV h*2R[[uIDATKEEE]6g?1+V|K>}4N.l7սWWlҰ(Ƹʫ#~&O?4~WA gѭ>K!D\ '@ii)Xd2Iwww/f>'~F:;;3f HX,e^ʥ wK__~G}}== .Bf͜I]]]=%HwwwѴ->֭;`=}2 WAmmm塇 "RdgiӸ w^)+S(XՅ5Hd!h,F<ίTlݻwo߾>ﯰҒ0RfHBati=*K]߷f 'J)-)=… <"bmڵzI`Fqxg8acǎ Wݶ,OPApпXPi&eee};_X7qR|g f^2Aa !:'ZpaYbXx-U_.kyZkRTZ%PX,B,z`}z}FƣqX X#>V]={$-ԃ, A\{͵\h_`Ӹj.H)D"D@*?©ϘOTӜk|aGL}𡇞<}>ݞ6mUR/gOglO,aضݧ\MLK,g ~&j x śsД:ۊ\Co֌3fGI)&''O sodԩd mu]V\Ƀ?m Z,^˽\}iĭ@vŏ?w r~,YP2a̜9~ku>3tZA&rt:K={֤ҹyg^|P9gΜJz"/5Aӎ%ţ<a1i7J+Muy wɶH$yz&[ Jc^(ˋ\.ƍXb?OiwxttBc8uҥCbsY=!dæi?2$5U~:wt*ՅӦsQGQ_7Q5s zYh޺m++Wݶ:Piƅ{Z+ZuGgn|TKE.9]~>I$4&i W0 bX'U1m}kTZU<FZA6 JACĐ)p҈@ VIgu.) |!6hګZ;p }W>ŶIwiYW#$1+qH)?ڤ!1_ɐ6_@ b@n(A⇛/8]a#ض/7k(/DUp[<BԔֺg[e@YȰok]=Z4k!l 'p죯~[o'~F͎Fo X{2~`_Z{N#PKOUgp~@d?9/H#d;|}!<[0.`EED>+W]sn PiQ k7 s +t6M ڸMAuu59=bqlۦ 9ˊ[ن ~Vyjzr@{wx%mcV\>fDO$I&) b+EcS#7m 87H 1\ 2B -Mza':=m&giXFoyaH0C"Z~>ir]6lȫ[ N.^){`yd[l@zd)?2 cB@$j(/+òm<70MEM;3<uc"0 Ð,~:tϫuRȻcE1&˲}ּ7ZzWvQa?Qn?p `"0 BG5LiQ"6ՕTVRQQF$W<5(aplbH>; P< <E(*F9l۶7w"S.}bdRw x# 3Ohh],giȱEfPZZF"W+Iĉ'D,H4BĶ-ŲL D QR99<#͐sz{须.Z9`RjKgm߲ؼ[YviS| oaYn83VĴBP2u8/uwwiǖ- Y0@bd eյcL>4)RG !b+)o\nCOgݻ7:QHsPx_sb@nidyyU,5#viJa A\J#&BX2@t:ʢUV8urtq\ߤEw=_|A+Y>{~ǪXqd~Aӝ?iG0߁9xpAy0NH@g<e.@gA p#I|bGlPW3FHi#m6FHi#m?J~sJIENDB`guvcview-2.0.2+debian/data/icons/image_controls.png000066400000000000000000000122341256377215300223440ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME  XIDATh՚y]u|摏ODSeSdC%XnuݤI-MIthڤ`"88v-5lQ&5Q%|ox^R#4.pq{o^QpG;}0`m$p '68t` 7F7>P Wo=~:]1=[RhQ:#KsrCl۾ '_ 3sjEc(j]RLebvM 1P%;;,* D 5s !+Qt.4JW^<'^fzvYQfܻ?:"nO{?)Y䑋 €l =oK/F RHt|0 yHqȍ1Fv>_(;q0H5Ugh|y,iQ(QV ۱֯Q 7`L/ ;Z>FghErQv@vPiհ*. "W)fdf~ﻹen˯/y'q?'OUbHuPiy O y5`7(@`J2#0 .X6i#UT!]# FfML {M᧞%s|axbH.m14:Amp,bw&1(c @ghcp@ N;,1yV `!-A Bi`}rͳ:F%,n5I :NJ ظ&#(5"ʀλZ50Nڭ7+E]>%쉍Dٻo/ɓvRTBRTJQ(Wf|b[kCH(ZiC S4bt,cigzuM`ݾ!hh49\FBjILON1w4v6~7gJ#FMH!*dQn*й"M"BYN(Cmj Fgֶ {pZq 5°3, iw}{rIlףNyMχ(第v½zZmc4Z/{V#6;\ZiQk tI7OR$`)JG>MsбƩg.[6;QPYBuHλdi,S=%tA8.aL aPu-;;>FRd%\ǥݍOVLz773t7\(#8ۘdžٌ}N}m  {AZvA\[i퓤9*WG{=mKl0>= _o%1]o|RܳiRKot$#k[RH;lx柳).RΓŶ]*{,Њb2!C t*tbMĸ pL#_kK "f^\\TQ7˴-Y-B?(ڣ5'aݬt,: E⣨h r{G1n$nmK:QBkarx{VAP(M 7>_fq7N6ʗe(ˏڊX,b;FN(Oݎ5t+ gCq%B 0qTnDI8diTE 46Iɕg<*U@L?Ƈo]d]٪0R<i;8Z:˥G|.r7u f ėW+XV0 FP" 4.f\<fdxj#ϐfm3xv9 Uj|n3{gu*ͮɔV::8,UmKO10v郤AEnq#U() W!QH+x'ٽfn$fI槐K`9,-F:iX~ gpM eł|H[mZKCftd~[4Iߤ'cI4a00Palxg{U\ߧ\PJw`~uuƼdDq},kgTRl&N˵]g?80$ʄC;.]bէqߡVI׾X,=o3~~n[]^ܤNZrm&l:ٸR ,ιGqjvP%:˨Up͕Sug+evόEJBZll~]y[*Gy,Oo:G?__ʒ&JMfq\_*xd;ӿș'J{?I9ˤgm64s4vaB(qou׀E };■W|[تu3jތ\o wTP cg\Aթv{?J5 p{WA. ׼|^97vLl&Ԩk7WJ[Jn۶ŕBM[ɭƫݸ{o`X/!՗G±sQYt0Jґ8V%(KKZBCj+tq^oWg~KÉ,Od}FL]g5y/5+ W3>HIENDB`guvcview-2.0.2+debian/data/icons/movie.png000066400000000000000000000116041256377215300204560ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME %IDAThŚy]}?gg r(d0cxhcv"Aui "{815R/8vRזUE^dK(Q%mg~s9cްSJ2vy~s~ K޵cA@ gZϞ:~_y+CzUs΢:1e6ZCba~G'>翝^l>wZZ'!B8@*koos,/?no,C JCTa|<Ɣ%,eQVP`vȏ]%@!$aIk(Kgdk {*c0E BP'kE>2dYFվo>{"}o dyҒZ;T!)cleqaSj)BD%%Uiޘ>s _/S6j/;Li8ᘢ1y>^R9:45t`UYb !x{O>v;B_< ܗ7@QoŤ[d1eY`k-ea=aiȋʔT,KBDUrڥO?%o=6/ZӚJPј"/0e5,Z BE!Z`0bMc Z*RG)rX-_'?n^;$FLZ(1E^b+)s(3J)8&NXgXQ 5s!%BB(l<_?\ xx?>\4ZARU%,׫ )%q aRà9@*E-ȊD#{`k ~ _y~i<'xVFFZSfLe*DFy6""0"JS$E|4f8#Dɰi"bcs$ZG =B8ן;}%m?8O0HrvzJ 1EN1cR5Yɨק(spn/:ʹAeTUEB4$Qw$4gW$|?z~T$QĽx2k[l221҃Ԛ֡9le(#<Fx^8 ݞ,<Q=%0):p #=~O˅z g$_3/_yRO,OqdN;a{{ c8ȹ|a v)N@kn }"GHPKR)㊱0;?<ˑRPf%R I1ppn7cH}s|گY$)N4QJyXckKhf<8?vl<"ɆTF aQo4i5ڌTaj*΁*hך,3 \ET9i}y'COW?%|׾̥pxn (.1Wu1Wo{;JLinJ&Qhh4:#fGgJ”98gq~k*;@oo'Ѩ,K { ǾOXvqOuY[ e,g_})P%JJx[蓜8^z8]O$֞ZH"SdI2  =[iL fU_BJ;l%>;>޿ni^G-\9OH!'z'6q{e-1ۚ53px0N f M) $%PI>4}URje@ꭹt)[pLLG31YHi!Bklm|gIҐ79>b.iɀTuMM1n0;fݢިS754u8B E(dy\sťe}c)Ǘ?餌mYj0YXTbkaj5QJr7n Ev/gѪD(p4DICA;4Do1aۧIZ:hiݧ^;/٥?rjn{Z`g KKӨY:7nh68y&Aсdӡmr繽zNg9fff1PHTvˁJbUub$zQ#{_Lm^ufY67C43uv;ln UH4mҤ53SG)+a^DJADAqA5i36`=[O}_|7YK [`՘±c޷= FMj'hdgGfvvzm>+rhu"ˆI'va:w襔B+%5)Y!>_fg?wv.j-шp)Q0=3C[36,_Da-jvÀ08JIݫFH)R$VJ#^ €( &Q<ÿ|o\$ 8}xD_xqkLBRAHQDY`gm6рfk4NLM!T՚FJ3j(!pX RIb0byleGXdL( +/=RE1J8k1UEfrTh4qs ث%qJ7IIRC1QBz@vGV>9r˗~oʼn8`jB$PR]qB-mt (& AHD(t{GEh%ڱ}5÷3B*wB ޮԔP^OYNv/W8HBG"INѢRamWb8& BT 䨩 -.s,=xԫ|#//_qtas_--{f[6W?wן9Ẉ&q UV#kTRyLx @㜤jcJGKNq}/l07o._ysI)Zfj;z=n^y W)>nO`= ԁD:F5揾ر|Ę`n&p ܼ}ͭ Y:~ 36l<36Ia| }2&NH'Oȝ^h9OwJ*tNwK^Oy6r`M2xr0ᤏ9mʗ# M&s:,0{N.F!Jjv; G]9K_'^nMٙ|HXy=xLwH&Q'9=^F=g{}sҡKUU//SN9ۘZv' @v炞ϾԒ@XYL='sKMB >`:;'%`\s/S$?H8 O]A2P~'޴WKZ- ;:[{P k?I}B92IENDB`guvcview-2.0.2+debian/data/icons/video_controls.png000066400000000000000000000111131256377215300223630ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME uxIDATh͚k\gy~vgvv^;q'& ΅4@KV*6PH@Vh%* BTBz!$jc$8qֱ^}vggw>cvH朣9\?[oɽЗ8^43ĹEWz6Vt&ϝ / dvƔs6gfh4VMV< _{oٵەՍ߷c 8, s(jHu ~~v|+?%lr;o5xZ#.֙>/ZgLɎ4(pTZ`Yn(`9-O/&_ 7T>kRLSkՙ^X }j* F8}D{XfÿR_'{F}SzVXT2BI(%~jƭc沸ac("ܯ㇗V&g%|p; Nx]!k.SoQ E(xG$^ U[Ď'<vPPU Ƹ9_.~SW3fG ,lHRC !׋GPLl/I], FH?b|.PU졐3_Zf}* U)^>' wն‡4-hA)%R f(z]%dbn7<᧟" <cF(7h\qtE#;䞩Rk;>p[opÞ Kv cinE ґTkuBិ <_zDZj!eFJڮK&i]a?TY;smwu'ot8GqBg h|keP$Btc@Hk d}#yIz#"ZR!ZɦcowiƤ\s4;FM NMX d R5\? =jty}ԛ-}gpb6 BA $Rx]Ll&yM }7V$:RJ&-q]V4A[zvsXDJ$H jIFGP٨Aqyŕa(&lvcBU$~x #!gTgZ'nhRTD4H l`xdV%n@OC2nV?@SMB %q`\em R-WxVfvM{{j1r^|R,]f~~P}MӰm )7 iTb]Fj냻HlD5L]GQEn7\$*tEj[.!dd ta-wW}`r*K\'?tISk(wNX]]ATLlsuJzk۲UU7;X]CTmIBl&Nr!a&z'x쩿Rz7ZX;f'RG*Aqwp{dnnvi1LӤnwhIX#i}ld9wDx lf[pnnṥٯto.G@!ð֨e/EHhTU|`w:8p^?5 j(ҕJE`=dyK6a N#yl'r3t R<>88D cȑ'חCwzϿN"'J37;mkhfJCzA]Ȏ !JL4]H˯gHD.}KNls'wwZ(@`b$񸃪kP 3A??C,aG6nHUCHLઉkyP(3XT>?<XlڥٵXx{yLCŶ R4j3"0=}M3}fN>O#:iL`"]sKlo !dmDq`ťuJ3!ѧػ-J˔ $q<Dz4XfNzl5ΞrP,ПKcQk=p,oz\W@^~UP.р]@Jy"i`e:8رh[arn>WiKow  .5ʖtz3s-2^(&HdYrj٩jt:O:Ųt|?`mm0i4+a@" +# da6N>̙]-KĀrUo6km}vP(dd2ry81eVW+aN bmF:(XM ЗhI̱e"Rr'wo֖.W Ād^:szrmwݻG/$Ǧ/K>qҴ>/px22F,f0 4Ep,USsi~+O_ytE2v)`kC/;~n5#KHdi6uOM]^ H C-З!r&NO<Oy(U`ut]"^ ޿.@@ۃ\uӍwxǝzågyt[+ ws}}7޽/ql)}2X*әfY` d.^mVHtx@ Z{umsscT<wFGvʫv*]c33O~v=`vW6CKin["{݅[jB`Kl.lt+@[[@x5 v-킾`GY _\/zD)Q\l._ l.urr[{4x׆BIENDB`guvcview-2.0.2+debian/depcomp000077500000000000000000000560161256377215300161700ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: guvcview-2.0.2+debian/guvcview/000077500000000000000000000000001256377215300164425ustar00rootroot00000000000000guvcview-2.0.2+debian/guvcview/Makefile.am000077500000000000000000000025741256377215300205110ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in #AM_CFLAGS = bin_PROGRAMS = guvcview guvcview_SOURCES = guvcview.c \ video_capture.c \ core_io.c \ options.c \ config.c \ gui.c \ gui_gtk3.c \ gui_gtk3_menu.c \ gui_gtk3_v4l2ctrls.c \ gui_gtk3_videoctrls.c \ gui_gtk3_h264ctrls.c \ gui_gtk3_audioctrls.c \ gui_gtk3_callbacks.c guvcview_CFLAGS = $(GUVCVIEW_CFLAGS) \ $(PTHREAD_CFLAGS) \ -D_REENTRANT\ -D_FILE_OFFSET_BITS=64\ -Wall\ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ $(DEPS_CFLAGS) $(EXTRA_CFLAGS) $(PTHREAD_CFLAGS) \ $(EXTRA_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/includes \ -I$(top_srcdir)/gview_v4l2core \ -I$(top_srcdir)/gview_render \ -I$(top_srcdir)/gview_audio \ -I$(top_srcdir)/gview_encoder guvcview_LDFLAGS = $(LIBINTL) guvcview_LDADD = ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ $(GUVCVIEW_LIBS) \ $(PTHREAD_LIBS) \ -lm localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ guvcview-2.0.2+debian/guvcview/Makefile.in000066400000000000000000001420041256377215300205100ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ #AM_CFLAGS = VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = guvcview$(EXEEXT) subdir = guvcview DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_guvcview_OBJECTS = guvcview-guvcview.$(OBJEXT) \ guvcview-video_capture.$(OBJEXT) guvcview-core_io.$(OBJEXT) \ guvcview-options.$(OBJEXT) guvcview-config.$(OBJEXT) \ guvcview-gui.$(OBJEXT) guvcview-gui_gtk3.$(OBJEXT) \ guvcview-gui_gtk3_menu.$(OBJEXT) \ guvcview-gui_gtk3_v4l2ctrls.$(OBJEXT) \ guvcview-gui_gtk3_videoctrls.$(OBJEXT) \ guvcview-gui_gtk3_h264ctrls.$(OBJEXT) \ guvcview-gui_gtk3_audioctrls.$(OBJEXT) \ guvcview-gui_gtk3_callbacks.$(OBJEXT) guvcview_OBJECTS = $(am_guvcview_OBJECTS) am__DEPENDENCIES_1 = guvcview_DEPENDENCIES = \ ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = guvcview_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(guvcview_CFLAGS) \ $(CFLAGS) $(guvcview_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(guvcview_SOURCES) DIST_SOURCES = $(guvcview_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = $(datadir)/locale localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ guvcview_SOURCES = guvcview.c \ video_capture.c \ core_io.c \ options.c \ config.c \ gui.c \ gui_gtk3.c \ gui_gtk3_menu.c \ gui_gtk3_v4l2ctrls.c \ gui_gtk3_videoctrls.c \ gui_gtk3_h264ctrls.c \ gui_gtk3_audioctrls.c \ gui_gtk3_callbacks.c guvcview_CFLAGS = $(GUVCVIEW_CFLAGS) \ $(PTHREAD_CFLAGS) \ -D_REENTRANT\ -D_FILE_OFFSET_BITS=64\ -Wall\ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ $(DEPS_CFLAGS) $(EXTRA_CFLAGS) $(PTHREAD_CFLAGS) \ $(EXTRA_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/includes \ -I$(top_srcdir)/gview_v4l2core \ -I$(top_srcdir)/gview_render \ -I$(top_srcdir)/gview_audio \ -I$(top_srcdir)/gview_encoder guvcview_LDFLAGS = $(LIBINTL) guvcview_LDADD = ../gview_v4l2core/$(GVIEWV4L2CORE_LIBRARY_NAME).la \ ../gview_render/$(GVIEWRENDER_LIBRARY_NAME).la \ ../gview_audio/$(GVIEWAUDIO_LIBRARY_NAME).la \ ../gview_encoder/$(GVIEWENCODER_LIBRARY_NAME).la \ $(GUVCVIEW_LIBS) \ $(PTHREAD_LIBS) \ -lm all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign guvcview/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign guvcview/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list guvcview$(EXEEXT): $(guvcview_OBJECTS) $(guvcview_DEPENDENCIES) $(EXTRA_guvcview_DEPENDENCIES) @rm -f guvcview$(EXEEXT) $(AM_V_CCLD)$(guvcview_LINK) $(guvcview_OBJECTS) $(guvcview_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-config.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-core_io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-guvcview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guvcview-video_capture.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< guvcview-guvcview.o: guvcview.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.o -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.o `test -f 'guvcview.c' || echo '$(srcdir)/'`guvcview.c guvcview-guvcview.obj: guvcview.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-guvcview.obj -MD -MP -MF $(DEPDIR)/guvcview-guvcview.Tpo -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-guvcview.Tpo $(DEPDIR)/guvcview-guvcview.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='guvcview.c' object='guvcview-guvcview.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-guvcview.obj `if test -f 'guvcview.c'; then $(CYGPATH_W) 'guvcview.c'; else $(CYGPATH_W) '$(srcdir)/guvcview.c'; fi` guvcview-video_capture.o: video_capture.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_capture.o -MD -MP -MF $(DEPDIR)/guvcview-video_capture.Tpo -c -o guvcview-video_capture.o `test -f 'video_capture.c' || echo '$(srcdir)/'`video_capture.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_capture.Tpo $(DEPDIR)/guvcview-video_capture.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_capture.c' object='guvcview-video_capture.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_capture.o `test -f 'video_capture.c' || echo '$(srcdir)/'`video_capture.c guvcview-video_capture.obj: video_capture.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-video_capture.obj -MD -MP -MF $(DEPDIR)/guvcview-video_capture.Tpo -c -o guvcview-video_capture.obj `if test -f 'video_capture.c'; then $(CYGPATH_W) 'video_capture.c'; else $(CYGPATH_W) '$(srcdir)/video_capture.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-video_capture.Tpo $(DEPDIR)/guvcview-video_capture.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_capture.c' object='guvcview-video_capture.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-video_capture.obj `if test -f 'video_capture.c'; then $(CYGPATH_W) 'video_capture.c'; else $(CYGPATH_W) '$(srcdir)/video_capture.c'; fi` guvcview-core_io.o: core_io.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-core_io.o -MD -MP -MF $(DEPDIR)/guvcview-core_io.Tpo -c -o guvcview-core_io.o `test -f 'core_io.c' || echo '$(srcdir)/'`core_io.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-core_io.Tpo $(DEPDIR)/guvcview-core_io.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_io.c' object='guvcview-core_io.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-core_io.o `test -f 'core_io.c' || echo '$(srcdir)/'`core_io.c guvcview-core_io.obj: core_io.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-core_io.obj -MD -MP -MF $(DEPDIR)/guvcview-core_io.Tpo -c -o guvcview-core_io.obj `if test -f 'core_io.c'; then $(CYGPATH_W) 'core_io.c'; else $(CYGPATH_W) '$(srcdir)/core_io.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-core_io.Tpo $(DEPDIR)/guvcview-core_io.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_io.c' object='guvcview-core_io.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-core_io.obj `if test -f 'core_io.c'; then $(CYGPATH_W) 'core_io.c'; else $(CYGPATH_W) '$(srcdir)/core_io.c'; fi` guvcview-options.o: options.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.o -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c guvcview-options.obj: options.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-options.obj -MD -MP -MF $(DEPDIR)/guvcview-options.Tpo -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-options.Tpo $(DEPDIR)/guvcview-options.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='guvcview-options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` guvcview-config.o: config.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-config.o -MD -MP -MF $(DEPDIR)/guvcview-config.Tpo -c -o guvcview-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-config.Tpo $(DEPDIR)/guvcview-config.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config.c' object='guvcview-config.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c guvcview-config.obj: config.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-config.obj -MD -MP -MF $(DEPDIR)/guvcview-config.Tpo -c -o guvcview-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-config.Tpo $(DEPDIR)/guvcview-config.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config.c' object='guvcview-config.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi` guvcview-gui.o: gui.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui.o -MD -MP -MF $(DEPDIR)/guvcview-gui.Tpo -c -o guvcview-gui.o `test -f 'gui.c' || echo '$(srcdir)/'`gui.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui.Tpo $(DEPDIR)/guvcview-gui.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui.c' object='guvcview-gui.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui.o `test -f 'gui.c' || echo '$(srcdir)/'`gui.c guvcview-gui.obj: gui.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui.obj -MD -MP -MF $(DEPDIR)/guvcview-gui.Tpo -c -o guvcview-gui.obj `if test -f 'gui.c'; then $(CYGPATH_W) 'gui.c'; else $(CYGPATH_W) '$(srcdir)/gui.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui.Tpo $(DEPDIR)/guvcview-gui.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui.c' object='guvcview-gui.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui.obj `if test -f 'gui.c'; then $(CYGPATH_W) 'gui.c'; else $(CYGPATH_W) '$(srcdir)/gui.c'; fi` guvcview-gui_gtk3.o: gui_gtk3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3.Tpo -c -o guvcview-gui_gtk3.o `test -f 'gui_gtk3.c' || echo '$(srcdir)/'`gui_gtk3.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3.Tpo $(DEPDIR)/guvcview-gui_gtk3.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3.c' object='guvcview-gui_gtk3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3.o `test -f 'gui_gtk3.c' || echo '$(srcdir)/'`gui_gtk3.c guvcview-gui_gtk3.obj: gui_gtk3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3.Tpo -c -o guvcview-gui_gtk3.obj `if test -f 'gui_gtk3.c'; then $(CYGPATH_W) 'gui_gtk3.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3.Tpo $(DEPDIR)/guvcview-gui_gtk3.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3.c' object='guvcview-gui_gtk3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3.obj `if test -f 'gui_gtk3.c'; then $(CYGPATH_W) 'gui_gtk3.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3.c'; fi` guvcview-gui_gtk3_menu.o: gui_gtk3_menu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_menu.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo -c -o guvcview-gui_gtk3_menu.o `test -f 'gui_gtk3_menu.c' || echo '$(srcdir)/'`gui_gtk3_menu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo $(DEPDIR)/guvcview-gui_gtk3_menu.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_menu.c' object='guvcview-gui_gtk3_menu.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_menu.o `test -f 'gui_gtk3_menu.c' || echo '$(srcdir)/'`gui_gtk3_menu.c guvcview-gui_gtk3_menu.obj: gui_gtk3_menu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_menu.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo -c -o guvcview-gui_gtk3_menu.obj `if test -f 'gui_gtk3_menu.c'; then $(CYGPATH_W) 'gui_gtk3_menu.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_menu.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_menu.Tpo $(DEPDIR)/guvcview-gui_gtk3_menu.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_menu.c' object='guvcview-gui_gtk3_menu.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_menu.obj `if test -f 'gui_gtk3_menu.c'; then $(CYGPATH_W) 'gui_gtk3_menu.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_menu.c'; fi` guvcview-gui_gtk3_v4l2ctrls.o: gui_gtk3_v4l2ctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_v4l2ctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo -c -o guvcview-gui_gtk3_v4l2ctrls.o `test -f 'gui_gtk3_v4l2ctrls.c' || echo '$(srcdir)/'`gui_gtk3_v4l2ctrls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_v4l2ctrls.c' object='guvcview-gui_gtk3_v4l2ctrls.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_v4l2ctrls.o `test -f 'gui_gtk3_v4l2ctrls.c' || echo '$(srcdir)/'`gui_gtk3_v4l2ctrls.c guvcview-gui_gtk3_v4l2ctrls.obj: gui_gtk3_v4l2ctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_v4l2ctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo -c -o guvcview-gui_gtk3_v4l2ctrls.obj `if test -f 'gui_gtk3_v4l2ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_v4l2ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_v4l2ctrls.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_v4l2ctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_v4l2ctrls.c' object='guvcview-gui_gtk3_v4l2ctrls.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_v4l2ctrls.obj `if test -f 'gui_gtk3_v4l2ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_v4l2ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_v4l2ctrls.c'; fi` guvcview-gui_gtk3_videoctrls.o: gui_gtk3_videoctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_videoctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo -c -o guvcview-gui_gtk3_videoctrls.o `test -f 'gui_gtk3_videoctrls.c' || echo '$(srcdir)/'`gui_gtk3_videoctrls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_videoctrls.c' object='guvcview-gui_gtk3_videoctrls.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_videoctrls.o `test -f 'gui_gtk3_videoctrls.c' || echo '$(srcdir)/'`gui_gtk3_videoctrls.c guvcview-gui_gtk3_videoctrls.obj: gui_gtk3_videoctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_videoctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo -c -o guvcview-gui_gtk3_videoctrls.obj `if test -f 'gui_gtk3_videoctrls.c'; then $(CYGPATH_W) 'gui_gtk3_videoctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_videoctrls.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_videoctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_videoctrls.c' object='guvcview-gui_gtk3_videoctrls.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_videoctrls.obj `if test -f 'gui_gtk3_videoctrls.c'; then $(CYGPATH_W) 'gui_gtk3_videoctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_videoctrls.c'; fi` guvcview-gui_gtk3_h264ctrls.o: gui_gtk3_h264ctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_h264ctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo -c -o guvcview-gui_gtk3_h264ctrls.o `test -f 'gui_gtk3_h264ctrls.c' || echo '$(srcdir)/'`gui_gtk3_h264ctrls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_h264ctrls.c' object='guvcview-gui_gtk3_h264ctrls.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_h264ctrls.o `test -f 'gui_gtk3_h264ctrls.c' || echo '$(srcdir)/'`gui_gtk3_h264ctrls.c guvcview-gui_gtk3_h264ctrls.obj: gui_gtk3_h264ctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_h264ctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo -c -o guvcview-gui_gtk3_h264ctrls.obj `if test -f 'gui_gtk3_h264ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_h264ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_h264ctrls.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_h264ctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_h264ctrls.c' object='guvcview-gui_gtk3_h264ctrls.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_h264ctrls.obj `if test -f 'gui_gtk3_h264ctrls.c'; then $(CYGPATH_W) 'gui_gtk3_h264ctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_h264ctrls.c'; fi` guvcview-gui_gtk3_audioctrls.o: gui_gtk3_audioctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_audioctrls.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo -c -o guvcview-gui_gtk3_audioctrls.o `test -f 'gui_gtk3_audioctrls.c' || echo '$(srcdir)/'`gui_gtk3_audioctrls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_audioctrls.c' object='guvcview-gui_gtk3_audioctrls.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_audioctrls.o `test -f 'gui_gtk3_audioctrls.c' || echo '$(srcdir)/'`gui_gtk3_audioctrls.c guvcview-gui_gtk3_audioctrls.obj: gui_gtk3_audioctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_audioctrls.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo -c -o guvcview-gui_gtk3_audioctrls.obj `if test -f 'gui_gtk3_audioctrls.c'; then $(CYGPATH_W) 'gui_gtk3_audioctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_audioctrls.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Tpo $(DEPDIR)/guvcview-gui_gtk3_audioctrls.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_audioctrls.c' object='guvcview-gui_gtk3_audioctrls.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_audioctrls.obj `if test -f 'gui_gtk3_audioctrls.c'; then $(CYGPATH_W) 'gui_gtk3_audioctrls.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_audioctrls.c'; fi` guvcview-gui_gtk3_callbacks.o: gui_gtk3_callbacks.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_callbacks.o -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo -c -o guvcview-gui_gtk3_callbacks.o `test -f 'gui_gtk3_callbacks.c' || echo '$(srcdir)/'`gui_gtk3_callbacks.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo $(DEPDIR)/guvcview-gui_gtk3_callbacks.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_callbacks.c' object='guvcview-gui_gtk3_callbacks.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_callbacks.o `test -f 'gui_gtk3_callbacks.c' || echo '$(srcdir)/'`gui_gtk3_callbacks.c guvcview-gui_gtk3_callbacks.obj: gui_gtk3_callbacks.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -MT guvcview-gui_gtk3_callbacks.obj -MD -MP -MF $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo -c -o guvcview-gui_gtk3_callbacks.obj `if test -f 'gui_gtk3_callbacks.c'; then $(CYGPATH_W) 'gui_gtk3_callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_callbacks.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/guvcview-gui_gtk3_callbacks.Tpo $(DEPDIR)/guvcview-gui_gtk3_callbacks.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gui_gtk3_callbacks.c' object='guvcview-gui_gtk3_callbacks.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(guvcview_CFLAGS) $(CFLAGS) -c -o guvcview-gui_gtk3_callbacks.obj `if test -f 'gui_gtk3_callbacks.c'; then $(CYGPATH_W) 'gui_gtk3_callbacks.c'; else $(CYGPATH_W) '$(srcdir)/gui_gtk3_callbacks.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/guvcview/config.c000066400000000000000000000313561256377215300200630ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include "gviewv4l2core.h" #include "gview.h" #include "core_io.h" #include "gui.h" #include "config.h" #include "../config.h" #define MAXLINE 100 /*100 char lines max*/ extern int debug_level; static config_t my_config = { .width = 640, .height = 480, .format = "MJPG", .render = "sdl", .gui = "gtk3", .audio = "port", .capture = "mmap", .video_codec = "dx50", .audio_codec = "mp2", .profile_name = NULL, .profile_path = NULL, .video_name = NULL, .video_path = NULL, .photo_name = NULL, .photo_path = NULL, .video_sufix = 1, .photo_sufix = 1, .fps_num = 1, .fps_denom = 25, .audio_device = -1,/*guvcview will use API default in this case*/ .video_fx = 0, /*no video fx*/ .audio_fx = 0, /*no audio fx*/ .osd_mask = 0, /*REND_OSD_NONE*/ }; /* * get the internal config data * args: * none * * asserts: * none * * returns: pointer to internal config_t struct */ config_t *config_get() { return &my_config; } /* * save options to config file * args: * filename - config file * * asserts: * none * * returns: error code */ int config_save(const char *filename) { FILE *fp; /*open file for write*/ if((fp = fopen(filename,"w")) == NULL) { fprintf(stderr, "GUVCVIEW: couldn't open %s for write: %s\n", filename, strerror(errno)); return -1; } /* use c locale - make sure floats are writen with a "." and not a "," */ setlocale(LC_NUMERIC, "C"); /*write config data*/ fprintf(fp, "#Guvcview %s config file\n", VERSION); fprintf(fp, "\n"); fprintf(fp, "#video input width\n"); fprintf(fp, "width=%i\n", my_config.width); fprintf(fp, "#video input height\n"); fprintf(fp, "height=%i\n", my_config.height); fprintf(fp, "#video input format\n"); fprintf(fp, "format=%s\n", my_config.format); fprintf(fp, "#video input capture method\n"); fprintf(fp, "capture=%s\n", my_config.capture); fprintf(fp, "#audio api\n"); fprintf(fp, "audio=%s\n", my_config.audio); fprintf(fp, "#gui api\n"); fprintf(fp, "gui=%s\n", my_config.gui); fprintf(fp, "#render api\n"); fprintf(fp, "render=%s\n", my_config.render); fprintf(fp, "#video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]\n"); fprintf(fp, "video_codec=%s\n", my_config.video_codec); fprintf(fp, "#audio codec [pcm mp2 mp3 aac ac3 vorb]\n"); fprintf(fp, "audio_codec=%s\n", my_config.audio_codec); fprintf(fp, "#profile name\n"); fprintf(fp, "profile_name=%s\n", my_config.profile_name); fprintf(fp, "#profile path\n"); fprintf(fp, "profile_path=%s\n", my_config.profile_path); fprintf(fp, "#video name\n"); fprintf(fp, "video_name=%s\n", my_config.video_name); fprintf(fp, "#video path\n"); fprintf(fp, "video_path=%s\n", my_config.video_path); fprintf(fp, "#video sufix flag\n"); fprintf(fp, "video_sufix=%i\n", my_config.video_sufix); fprintf(fp, "#photo name\n"); fprintf(fp, "photo_name=%s\n", my_config.photo_name); fprintf(fp, "#photo path\n"); fprintf(fp, "photo_path=%s\n", my_config.photo_path); fprintf(fp, "#photo sufix flag\n"); fprintf(fp, "photo_sufix=%i\n", my_config.photo_sufix); fprintf(fp, "#fps numerator (def. 1)\n"); fprintf(fp, "fps_num=%i\n", my_config.fps_num); fprintf(fp, "#fps denominator (def. 25)\n"); fprintf(fp, "fps_denom=%i\n", my_config.fps_denom); fprintf(fp, "#audio device index (-1 - api default)\n"); fprintf(fp, "audio_device=%i\n", my_config.audio_device); fprintf(fp, "#video fx mask \n"); fprintf(fp, "video_fx=0x%x\n", my_config.video_fx); fprintf(fp, "#audio fx mask \n"); fprintf(fp, "audio_fx=0x%x\n", my_config.audio_fx); fprintf(fp, "#OSD mask \n"); fprintf(fp, "osd_mask=0x%x\n", my_config.osd_mask); /* return to system locale */ setlocale(LC_NUMERIC, ""); /* flush stream buffers to filesystem */ fflush(fp); /* close file after fsync (sync file data to disk) */ if (fsync(fileno(fp)) || fclose(fp)) { fprintf(stderr, "GUVCVIEW: error writing configuration data to file: %s\n", strerror(errno)); return -1; } if(debug_level > 1) printf("GUVCVIEW: saving config to %s\n", filename); return 0; } /* * load options from config file * args: * filename - config file * * asserts: * none * * returns: error code */ int config_load(const char *filename) { FILE *fp; char bufr[MAXLINE]; int line = 0; /*open file for read*/ if((fp = fopen(filename,"r")) == NULL) { fprintf(stderr, "GUVCVIEW: couldn't open %s for read: %s\n", filename, strerror(errno)); return -1; } while(fgets(bufr, MAXLINE, fp) != NULL) { line++; char *bufp = bufr; /*parse config line*/ /*trim leading and trailing spaces and newline*/ trim_leading_wspaces(bufp); trim_trailing_wspaces(bufp); /*skip empty or commented lines */ int size = strlen(bufp); if(size < 1 || *bufp == '#') { if(debug_level > 1) printf("GUVCVIEW: (config) empty or commented line (%i)\n", line); continue; } char *token = NULL; char *value = NULL; char *sp = strrchr(bufp, '='); if(sp) { int size = sp - bufp; token = strndup(bufp, size); trim_leading_wspaces(token); trim_trailing_wspaces(token); value = strdup(sp + 1); trim_leading_wspaces(value); trim_trailing_wspaces(value); } /*skip invalid lines */ if(!token || !value || strlen(token) < 1 || strlen(value) < 1) { fprintf(stderr, "GUVCVIEW: (config) skiping invalid config entry at line %i\n", line); if(token) free(token); if(value) free(value); continue; } /*check tokens*/ if(strcmp(token, "width") == 0) my_config.width = (int) strtoul(value, NULL, 10); else if(strcmp(token, "height") == 0) my_config.height = (int) strtoul(value, NULL, 10); else if(strcmp(token, "format") == 0) strncpy(my_config.format, value, 4); else if(strcmp(token, "capture") == 0) strncpy(my_config.capture, value, 4); else if(strcmp(token, "audio") == 0) strncpy(my_config.audio, value, 5); else if(strcmp(token, "gui") == 0) strncpy(my_config.gui, value, 4); else if(strcmp(token, "render") == 0) strncpy(my_config.render, value, 4); else if(strcmp(token, "video_codec") == 0) strncpy(my_config.video_codec, value, 4); else if(strcmp(token, "audio_codec") == 0) strncpy(my_config.audio_codec, value, 4); else if(strcmp(token, "profile_name") == 0 && strlen(value) > 2) { if(my_config.profile_name) free(my_config.profile_name); my_config.profile_name = strdup(value); set_profile_name(value); } else if(strcmp(token, "profile_path") == 0) { if(my_config.profile_path) free(my_config.profile_path); my_config.profile_path = strdup(value); set_profile_path(value); } else if(strcmp(token, "video_name") == 0 && strlen(value) > 2) { if(my_config.video_name) free(my_config.video_name); my_config.video_name = strdup(value); } else if(strcmp(token, "video_path") == 0) { if(my_config.video_path) free(my_config.video_path); my_config.video_path = strdup(value); } else if(strcmp(token, "photo_name") == 0 && strlen(value) > 2) { if(my_config.photo_name) free(my_config.photo_name); my_config.photo_name = strdup(value); } else if(strcmp(token, "photo_path") == 0) { if(my_config.photo_path) free(my_config.photo_path); my_config.photo_path = strdup(value); } else if(strcmp(token, "video_sufix") == 0) { my_config.video_sufix = (int) strtoul(value, NULL, 10); set_video_sufix_flag(my_config.video_sufix); } else if(strcmp(token, "photo_sufix") == 0) { my_config.photo_sufix = (int) strtoul(value, NULL, 10); set_photo_sufix_flag(my_config.photo_sufix); } else if(strcmp(token, "fps_num") == 0) my_config.fps_num = (int) strtoul(value, NULL, 10); else if(strcmp(token, "fps_denom") == 0) my_config.fps_denom = (int) strtoul(value, NULL, 10); else if(strcmp(token, "audio_device") == 0) my_config.audio_device = (int) strtoul(value, NULL, 10); else if(strcmp(token, "video_fx") == 0) my_config.video_fx = (uint32_t) strtoul(value, NULL, 16); else if(strcmp(token, "audio_fx") == 0) my_config.audio_fx = (uint32_t) strtoul(value, NULL, 16); else if(strcmp(token, "osd_mask") == 0) my_config.osd_mask = (uint32_t) strtoul(value, NULL, 16); else fprintf(stderr, "GUVCVIEW: (config) skiping invalid entry at line %i ('%s', '%s')\n", line, token, value); if(token) free(token); if(value) free(value); } //if(errno) //{ // fprintf(stderr, "GUVCVIEW: couldn't read line %i of config file: %s\n", line, strerror(errno)); // fclose(fp); // return -1; //} fclose(fp); return 0; } /* * update config data with options data * args: * my_options - pointer to options data * * asserts: * none * * returns: none */ void config_update(options_t *my_options) { /*check for resolution options*/ if(my_options->width > 0) my_config.width = my_options->width; if(my_options->height > 0) my_config.height = my_options->height; /*capture method*/ if(strlen(my_options->capture) > 3) strncpy(my_config.capture, my_options->capture, 4); /*render API*/ if(strlen(my_options->render) > 2) strncpy(my_config.render, my_options->render, 4); /*gui API*/ if(strlen(my_options->gui) > 3) strncpy(my_config.gui, my_options->gui, 4); /*audio API*/ if(strlen(my_options->audio) > 3) strncpy(my_config.audio, my_options->audio, 5); /*audio device*/ if(my_options->audio_device >= 0) my_config.audio_device = my_options->audio_device; /*input format*/ if(strlen(my_options->format) > 2) strncpy(my_config.format, my_options->format, 5); /*video codec*/ if(strlen(my_options->video_codec) > 2) strncpy(my_config.video_codec, my_options->video_codec, 4); /*audio codec*/ if(strlen(my_options->audio_codec) > 2) strncpy(my_config.audio_codec, my_options->audio_codec, 4); /*profile*/ if(my_options->profile_name) { if(my_config.profile_name) free(my_config.profile_name); my_config.profile_name = strdup(my_options->profile_name); } if(my_options->profile_path) { if(my_config.profile_path) free(my_config.profile_path); my_config.profile_path = strdup(my_options->profile_path); } /*video file*/ if(my_options->video_name) { if(my_config.video_name) free(my_config.video_name); my_config.video_name = strdup(my_options->video_name); } if(my_options->video_path) { if(my_config.video_path) free(my_config.video_path); my_config.video_path = strdup(my_options->video_path); } /*photo*/ if(my_options->photo_name) { if(my_config.photo_name) free(my_config.photo_name); my_config.photo_name = strdup(my_options->photo_name); } if(my_options->photo_path) { if(my_config.photo_path) free(my_config.photo_path); my_config.photo_path = strdup(my_options->photo_path); } } /* * cleans internal config allocations * args: * none * * asserts: * none * * returns: none */ void config_clean() { if(my_config.profile_name != NULL) free(my_config.profile_name); if(my_config.profile_path != NULL) free(my_config.profile_path); if(my_config.video_name != NULL) free(my_config.video_name); if(my_config.video_path != NULL) free(my_config.video_path); if(my_config.photo_name != NULL) free(my_config.photo_name); if(my_config.photo_path != NULL) free(my_config.photo_path); } guvcview-2.0.2+debian/guvcview/config.h000066400000000000000000000063421256377215300200650ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef CONFIG_H #define CONFIG_H #include "options.h" typedef struct _config_t { int width; /*width*/ int height; /*height*/ char format[5]; /*pixelformat fourcc*/ char render[5]; /*render api*/ char gui[5]; /*gui api*/ char audio[6]; /*audio api - none; port; pulse*/ char capture[5]; /*capture method: read or mmap*/ char video_codec[5]; /*video codec*/ char audio_codec[5]; /*video codec*/ char *profile_path; char *profile_name; char *video_path; char *video_name; char *photo_path; char *photo_name; int video_sufix; /*flag if video file has auto suffix enable*/ int photo_sufix; /*flag if photo file has auto suffix enable*/ int fps_num; int fps_denom; int audio_device;/*audio device index*/ uint32_t video_fx; uint32_t audio_fx; uint32_t osd_mask; /*OSD bit mask*/ } config_t; /* * get the internal config data * args: * none * * asserts: * none * * returns: pointer to internal config_t struct */ config_t *config_get(); /* * save options to config file * args: * filename - config file * * asserts: * none * * returns: error code */ int config_save(const char *filename); /* * load options from config file * args: * filename - config file * * asserts: * none * * returns: error code */ int config_load(const char *filename); /* * update config data with options data * args: * my_options - pointer to options data * * asserts: * none * * returns: none */ void config_update(options_t *my_options); /* * cleans internal config allocations * args: * none * * asserts: * none * * returns: none */ void config_clean(); #endif guvcview-2.0.2+debian/guvcview/core_io.c000066400000000000000000000270221256377215300202300ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "../config.h" extern int debug_level; /* * converts string to lowercase * args: * str - string pointer * * asserts: * none * * returns: pointer to converted string */ char *lowercase(char *str) { char *p = str; for ( ; *p; ++p) *p = tolower(*p); return str; } /* * trim leading white spaces from source string * args: * src - source string * * asserts: * none * * returns: error code */ int trim_leading_wspaces(char *src) { if(src == NULL || strlen(src) < 1) return -1; char *srcp = src; while(isspace(*srcp)) srcp++; /*move string chars*/ if(srcp != src) { char *tmp = strdup(srcp); strcpy(src, tmp); free(tmp); } return 0; } /* * trim trailing white spaces and control chars (\n) from source string * args: * src - source string * * asserts: * none * * returns: error code */ int trim_trailing_wspaces(char *src) { if(src == NULL || strlen(src) < 1) return -1; /*move to end of string*/ char *srcp = src + strlen(src); while((isspace(*(srcp-1)) || iscntrl(*(srcp-1))) && (srcp - 1) > src) srcp--; /*end string*/ *srcp = '\0'; return 0; } /* * gets the number of chars to represent n * args: * n - uint64_t number to represent * * asserts: * none * * returns: number of chars needed to represent n */ int get_uint64_num_chars (uint64_t n) { int i = 0; while (n != 0) { n /= 10; i++; } return i; } /* * smart concatenation * args: * dest - destination string * c - connector char * str1 - string to concat * * asserts: * none * * returns: concatenated string (must free) */ char *smart_cat(const char *dest, const char c, const char *str1) { int size_c = 0; if(c != 0) size_c = 1; int size_dest = strlen(dest); int size_str1 = strlen(str1); int size = size_dest + size_c + size_str1 + 1; /*add ending null char*/ char *my_cat = calloc(size, sizeof(char)); if(my_cat == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (smart_cat): %s\n", strerror(errno)); exit(-1); } char *my_p = my_cat; if(size_dest) memcpy(my_cat, dest, size_dest); if(size_c) my_cat[size_dest] = c; if(size_str1) { my_p += size_dest + size_c; memcpy(my_p, str1, size_str1); } /*add ending null char*/ my_cat[size_dest + size_c + size_str1] = '\0'; if(debug_level > 1) printf("GUVCVIEW: (smart_cat) dest=%s(%i) len_c=%c(%i) len_str1=%s(%i) => %s\n", dest, size_dest, c, size_c, str1, size_str1, my_cat); return my_cat; } /* * get the filename basename * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with basename (must free it) */ char *get_file_basename(const char *filename) { char *name = strrchr(filename, '/'); char *basename = NULL; if(name != NULL) basename = strdup(name + 1); /*skip '/'*/ else basename = strdup(filename); if(debug_level > 1) printf("GUVCVIEW: basename for %s is %s\n", filename, basename); return basename; } /* * get the filename path * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with path (must free it) * or NULL if no path found */ char *get_file_pathname(const char *filename) { char *name = strrchr(filename, '/'); char *pathname = NULL; if(name) { int strsize = name - filename; pathname = strndup(filename, strsize); } if(debug_level > 1) printf("GUVCVIEW: path for %s is %s\n", filename, pathname); return pathname; } /* * get the filename extension * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with extension (must free it) * or NULL if no extension found */ char *get_file_extension(const char *filename) { char *basename = get_file_basename(filename); char *name = strrchr(basename, '.'); char *extname = NULL; if(name) extname = strdup(name + 1); if(debug_level > 1) printf("GUVCVIEW: extension for %s is %s\n", filename, extname); free(basename); return extname; } /* * change the filename extension * args: * filename - string with filename * ext - string with new extension * * asserts: * none * * returns: string with new extension (must free it) */ char *set_file_extension(const char *filename, const char *ext) { char *name = strrchr(filename, '.'); char *noext_filename = NULL; int strsize = strlen(filename); if(name) strsize = name - filename; noext_filename = strndup(filename, strsize); char *new_filename = smart_cat(noext_filename, '.', ext); free(noext_filename); if(debug_level > 1) printf("GUVCVIEW: changed file extension to %s\n", new_filename); return new_filename; } /* * Calculate the required buffer size (in bytes) for directory * entries read from the given directory handle. Return -1 if this * this cannot be done. * * This code does not trust values of NAME_MAX that are less than * 255, since some systems (including at least HP-UX) incorrectly * define it to be a smaller value. * * If you use autoconf, include fpathconf and dirfd in your * AC_CHECK_FUNCS list. Otherwise use some other method to detect * and use them where available. * * args: * dirp - pointer to DIR struct * * asserts: * none * * returns: buffer size for directory entries */ size_t dirent_buf_size(DIR * dirp) { long name_max; size_t name_end; # if defined(HAVE_FPATHCONF) && defined(HAVE_DIRFD) \ && defined(_PC_NAME_MAX) name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX); if (name_max == -1) # if defined(NAME_MAX) name_max = (NAME_MAX > 255) ? NAME_MAX : 255; # else return (size_t)(-1); # endif # else # if defined(NAME_MAX) name_max = (NAME_MAX > 255) ? NAME_MAX : 255; # else # error "buffer size for readdir_r cannot be determined" # endif # endif name_end = (size_t)offsetof(struct dirent, d_name) + name_max + 1; return (name_end > sizeof(struct dirent) ? name_end : sizeof(struct dirent)); } /* * get the sufix for filename in path (e.g. for file-3.png sufix is 3) * args: * path - string with file path * filename - string with file basename * * asserts: * none * * returns: none */ unsigned long long get_file_suffix(const char *path, const char* filename) { unsigned long long suffix = 0; DIR *dirp = opendir(path); size_t size; struct dirent *buf, *ent; int error; if(dirp == NULL) { fprintf(stderr, "GUVCVIEW: Error Couldn't open %s directory\n", path); return suffix; } size = dirent_buf_size(dirp); if(size < 0) { perror("GUVCVIEW: dirent_buf_size"); closedir(dirp); return suffix; } buf = (struct dirent *)malloc(size); if (buf == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (get_file_suffix): %s\n", strerror(errno)); exit(-1); } int noextsize = strlen(filename); char *name = strrchr(filename, '.'); if(name) noextsize = name - filename; char *noextname = strndup(filename, noextsize); char *extension = strdup(name + 1); int fsize = strlen(filename) + 7; char format_str[fsize]; snprintf(format_str, fsize-1, "%s-%%20s.%s", noextname, extension); while ((error = readdir_r(dirp, buf, &ent)) == 0 && ent != NULL) { if(debug_level > 3) printf("GUVCVIEW: (get_file_suffix) checking %s\n", ent->d_name); if (strncmp(ent->d_name, noextname, noextsize) == 0) { if(debug_level > 3) printf("GUVCVIEW: (get_file_suffix) prefix matched (%s)\n", noextname); char *ext = strrchr(ent->d_name, '.'); if(strcmp(ext + 1, extension) == 0) { char sfixstr[21]; unsigned long long sfix = 0; sscanf(ent->d_name, format_str, sfixstr); if(debug_level > 3) printf("GUVCVIEW: (get_file_suffix) matched with suffix %s\n", sfixstr); sfix = strtoull(sfixstr, (char **)NULL, 10); if(sfix > suffix) suffix = sfix; } } } if(error) { errno = error; fprintf(stderr,"GUVCVIEW: error while reading dir: %s\n", strerror(errno)); } closedir(dirp); free(noextname); free(extension); free(buf); if(debug_level > 1) printf("GUVCVIEW: (get_file_suffix) %s has sufix %llu\n", filename, suffix); return suffix; } /* * add a number suffix to filename (e.g. name.ext => name-suffix.ext) * the suffix depends on the existing values in the path dir * args: * path - string with file path (to dir) * filename - string with file basename (name.ext) * suffix - suffix number * * asserts: * none * * returns: newly allocated string with suffixed file name (must free) */ char *add_file_suffix(const char *path, const char *filename) { unsigned long long suffix = get_file_suffix(path, filename); /*increment existing suffix*/ suffix++; int size_suffix = get_uint64_num_chars(suffix); int size_name = strlen(filename); int noextsize = strlen(filename); char *pname = strrchr(filename, '.'); if(pname) noextsize = pname - filename; char *noextname = strndup(filename, noextsize); char *extension = strdup(pname + 1); /*add '-' suffix and '\0' and an extra char just for safety*/ char *new_name = calloc(size_name + size_suffix + 3, sizeof(char)); if(new_name == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (add_file_suffix): %s\n", strerror(errno)); exit(-1); } if(noextname && extension) { sprintf(new_name, "%s-%llu.%s", noextname, suffix, extension); free(noextname); free(extension); } else sprintf(new_name, "%s-%llu", filename, suffix); return new_name; } guvcview-2.0.2+debian/guvcview/core_io.h000066400000000000000000000105741256377215300202410ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef CORE_IO_H #define CORE_IO_H #include /* * converts string to lowercase * args: * str - string pointer * * asserts: * none * * returns: pointer to converted string */ char *lowercase(char *str); /* * trim leading white spaces from source string * args: * src - source string * * asserts: * none * * returns: error code */ int trim_leading_wspaces(char *src); /* * trim trailing white spaces and control chars (\n) from source string * args: * src - source string * * asserts: * none * * returns: error code */ int trim_trailing_wspaces(char *src); /* * gets the number of chars to represent n * args: * n - uint64_t number to represent * * asserts: * none * * returns: number of chars needed to represent n */ int get_uint64_num_chars (uint64_t n); /* * smart concatenation * args: * dest - destination string * c - connector char * str1 - string to concat * * asserts: * none * * returns: concatenated string (must free) */ char *smart_cat(const char *dest, char c, const char *str1); /* * get the filename basename * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with basename (must free it) */ char *get_file_basename(const char *filename); /* * get the filename path * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with path (must free it) * or NULL if no path found */ char *get_file_pathname(const char *filename); /* * get the filename extension * args: * filename - string with filename (full path) * * asserts: * none * * returns: new string with extension (must free it) * or NULL if no extension found */ char *get_file_extension(const char *filename); /* * change the filename extension * args: * filename - string with filename * ext - string with new extension * * asserts: * none * * returns: string with new extension (must free it) */ char *set_file_extension(const char *filename, const char *ext); /* * get the sufix for filename in path (e.g. for file-3.png sufix is 3) * args: * path - string with file path * filename - string with file basename * * asserts: * none * * returns: none */ unsigned long long get_file_suffix(const char *path, const char* filename); /* * add a number suffix to filename (e.g. name.ext => name-suffix.ext) * the suffix depends on the existing values in the path dir * args: * path - string with file path (to dir) * filename - string with file basename (name.ext) * suffix - suffix number * * asserts: * none * * returns: newly allocated string with suffixed file name (must free) */ char *add_file_suffix(const char *path, const char *filename); #endifguvcview-2.0.2+debian/guvcview/gui.c000066400000000000000000000406131256377215300173760ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "core_io.h" #include "gui.h" #include "gui_gtk3.h" #include "config.h" #include "video_capture.h" #include "gviewencoder.h" extern int debug_level; int is_control_panel = 0; static int gui_api = GUI_GTK3; /*default camera button action: DEF_ACTION_IMAGE - save image; DEF_ACTION_VIDEO - save video*/ static int default_camera_button_action = 0; /*control profile file name*/ static char *profile_name = NULL; /*control profile path to dir*/ static char *profile_path = NULL; /*photo basename*/ static char *photo_name = NULL; /*photo path*/ static char *photo_path = NULL; /*photo sufix flag*/ static int photo_sufix_flag = 1; /*photo format*/ static int photo_format = IMG_FMT_JPG; /*video basename*/ static char *video_name = NULL; /*video path*/ static char *video_path = NULL; /*video sufix flag*/ static int video_sufix_flag = 1; /*photo format*/ static int video_muxer = ENCODER_MUX_MKV; static int my_video_codec_ind = 0; static int my_audio_codec_ind = 0; /*index: 0 numerator; 1 denominator*/ static int my_fps[2] = {0, 0}; /* * gets the current video codec index * args: * none * * asserts: * none * * returns: current codec index */ int get_video_codec_ind() { return my_video_codec_ind; } /* * sets the current video codec index * args: * index - codec index * * asserts: * none * * returns: none */ void set_video_codec_ind(int index) { my_video_codec_ind = index; /*update config*/ config_t *my_config = config_get(); if(index == 0) strncpy(my_config->video_codec, "raw", 4); else { const char *codec_4cc = encoder_get_video_codec_4cc(index); if(codec_4cc) { strncpy(my_config->video_codec, codec_4cc, 4); lowercase(my_config->video_codec); } } } /* * gets the current audio codec index * args: * none * * asserts: * none * * returns: current codec index */ int get_audio_codec_ind() { return my_audio_codec_ind; } /* * sets the current audio codec index * args: * index - codec index * * asserts: * none * * returns: none */ void set_audio_codec_ind(int index) { my_audio_codec_ind = index; /*update config*/ config_t *my_config = config_get(); const char *codec_name = encoder_get_audio_codec_name(index); if(codec_name) { strncpy(my_config->audio_codec, codec_name, 4); lowercase(my_config->video_codec); } } /* * gets the current fps numerator * args: * none * * asserts: * none * * returns: current fps numerator */ //int gui_get_fps_num() //{ // return my_fps[0]; //} /* * gets the current fps denominator * args: * none * * asserts: * none * * returns: current fps denominator */ //int gui_get_fps_denom() //{ // return my_fps[1]; //} /* * stores the fps * args: * fps - array with fps numerator and denominator * * asserts: * none * * returns: none */ void gui_set_fps(int fps[2]) { my_fps[0] = fps[0]; my_fps[1] = fps[1]; /*update config*/ config_t *my_config = config_get(); my_config->fps_num = my_fps[0]; my_config->fps_denom = my_fps[1]; } /* * gets the default camera button action * args: * none * * asserts: * none * * returns: default camera button action */ int get_default_camera_button_action() { return default_camera_button_action; } /* * sets the default camera button action * args: * action: camera button default action * * asserts: * none * * returns: none */ void set_default_camera_button_action(int action) { default_camera_button_action = action; } /* * click image capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_image_capture_button() { switch(gui_api) { case GUI_NONE: video_capture_save_image(); break; case GUI_GTK3: default: gui_click_image_capture_button_gtk3(); break; } } /* * click video capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_video_capture_button() { switch(gui_api) { case GUI_NONE: if(!get_encoder_status()) start_encoder_thread(); else { if(check_video_timer()) reset_video_timer(); stop_encoder_thread(); } break; case GUI_GTK3: default: gui_click_video_capture_button_gtk3(); break; } } /* * sets the Image capture button label * args: * label: Image capture button label * * asserts: * none * * returns: none */ void gui_set_image_capture_button_label(const char *label) { switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: gui_set_image_capture_button_label_gtk3(label); break; } } /* * sets the Video capture button status (on|off) * args: * flag: video capture button status * * asserts: * none * * returns: none */ void gui_set_video_capture_button_status(int flag) { switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: gui_set_video_capture_button_status_gtk3(flag); break; } } /* * gets the control profile file name * args: * none * * asserts: * none * * returns: control profile file name */ char *get_profile_name() { if(!profile_name) profile_name = strdup("default.gpfl"); return profile_name; } /* * sets the control profile file name * args: * name: control profile file name * * asserts: * none * * returns: none */ void set_profile_name(const char *name) { if(profile_name != NULL) free(profile_name); profile_name = strdup(name); /* update the config */ config_t *my_config = config_get(); /*this can be the function arg 'name'*/ if(my_config->profile_name) free(my_config->profile_name); /*so here we use the dup string*/ my_config->profile_name = strdup(profile_name); } /* * gets the control profile path (to dir) * args: * none * * asserts: * none * * returns: control profile file path */ char *get_profile_path() { if(!profile_path) profile_path = strdup(getenv("HOME")); return profile_path; } /* * sets the control profile path (to dir) * args: * path: control profile path * * asserts: * none * * returns: none */ void set_profile_path(const char *path) { if(profile_path != NULL) free(profile_path); profile_path = strdup(path); /* update the config */ config_t *my_config = config_get(); /*this can be the function arg 'path'*/ if(my_config->profile_path) free(my_config->profile_path); /*so here we use the dup string*/ my_config->profile_path = strdup(profile_path); } /* * gets video sufix flag * args: * none * * asserts: * none * * returns: video sufix flag */ int get_video_sufix_flag() { return video_sufix_flag; } /* * sets the video sufix flag * args: * flag: video sufix flag * * asserts: * none * * returns: none */ void set_video_sufix_flag(int flag) { video_sufix_flag = flag; } /* * gets video muxer * args: * none * * asserts: * none * * returns: video muxer */ int get_video_muxer() { return video_muxer; } /* * sets video muxer * args: * muxer - video muxer (ENCODER_MUX_[MKV|WEBM|AVI]) * * asserts: * none * * returns: none */ void set_video_muxer(int muxer) { video_muxer = muxer; } /* * gets the video file basename * args: * none * * asserts: * none * * returns: video file basename */ char *get_video_name() { if(!video_name) video_name = strdup("my_video.mkv"); return video_name; } /* * sets the video file basename * args: * name: video file basename * * asserts: * none * * returns: none */ void set_video_name(const char *name) { if(video_name != NULL) free(video_name); video_name = strdup(name); /* update the config */ config_t *my_config = config_get(); /*this can be the function arg 'name'*/ if(my_config->video_name) free(my_config->video_name); /*so here we use the dup string*/ my_config->video_name = strdup(video_name); /*get image format*/ char *ext = get_file_extension(name); if(ext == NULL) fprintf(stderr, "GUVCVIEW: no valid file extension for video file %s\n", name); else if( strcasecmp(ext, "mkv") == 0) set_video_muxer(ENCODER_MUX_MKV); else if ( strcasecmp(ext, "webm") == 0 ) { set_video_muxer(ENCODER_MUX_WEBM); /*force webm codecs*/ set_webm_codecs(); } else if ( strcasecmp(ext, "avi") == 0 ) set_video_muxer(ENCODER_MUX_AVI); if(ext) free(ext); } /* * gets the video file path (to dir) * args: * none * * asserts: * none * * returns: video file path */ char *get_video_path() { if(!video_path) video_path = strdup(getenv("HOME")); return video_path; } /* * sets video path (to dir) * args: * path: video file path * * asserts: * none * * returns: none */ void set_video_path(const char *path) { if(video_path != NULL) free(video_path); video_path = strdup(path); /* update the config */ config_t *my_config = config_get(); /*this can be the function arg 'path'*/ if(my_config->video_path) free(my_config->video_path); /*so here we use the dup string*/ my_config->video_path = strdup(video_path); } /* * gets photo sufix flag * args: * none * * asserts: * none * * returns: photo sufix flag */ int get_photo_sufix_flag() { return photo_sufix_flag; } /* * sets the photo sufix flag * args: * flag: photo sufix flag * * asserts: * none * * returns: none */ void set_photo_sufix_flag(int flag) { photo_sufix_flag = flag; } /* * gets photo format * args: * none * * asserts: * none * * returns: photo format */ int get_photo_format() { return photo_format; } /* * sets photo format * args: * format - photo format (IMG_FMT_[JPG|BMP|PNG|RAW]) * * asserts: * none * * returns: none */ void set_photo_format(int format) { photo_format = format; } /* * gets the photo file basename * args: * none * * asserts: * none * * returns: photo file basename */ char *get_photo_name() { if(!photo_name) photo_name = strdup("my_photo.jpg"); return photo_name; } /* * sets the photo file basename and image format * args: * name: photo file basename * * asserts: * none * * returns: none */ void set_photo_name(const char *name) { if(photo_name != NULL) free(photo_name); photo_name = strdup(name); /*update the config*/ config_t *my_config = config_get(); /*this can be the function arg 'name'*/ if(my_config->photo_name) free(my_config->photo_name); /*so here we use the dup string*/ my_config->photo_name = strdup(photo_name); /*get image format*/ char *ext = get_file_extension(name); if(ext == NULL) fprintf(stderr, "GUVCVIEW: no valid file extension for image file %s\n", name); else if( strcasecmp(ext, "jpg") == 0 || strcasecmp(ext, "jpeg") == 0 ) set_photo_format(IMG_FMT_JPG); else if ( strcasecmp(ext, "png") == 0 ) set_photo_format(IMG_FMT_PNG); else if ( strcasecmp(ext, "bmp") == 0 ) set_photo_format(IMG_FMT_BMP); else if ( strcasecmp(ext, "raw") == 0 ) set_photo_format(IMG_FMT_RAW); if(ext) free(ext); } /* * gets the photo file path (to dir) * args: * none * * asserts: * none * * returns: photo file path */ char *get_photo_path() { if(!photo_path) photo_path = strdup(getenv("HOME")); return photo_path; } /* * sets photo path (to dir) * args: * path: photo file path * * asserts: * none * * returns: none */ void set_photo_path(const char *path) { if(photo_path != NULL) free(photo_path); photo_path = strdup(path); /*update the config*/ config_t *my_config = config_get(); /*this can be the function arg 'path'*/ if(my_config->photo_path) free(my_config->photo_path); /*so here we use the dup string*/ my_config->photo_path = strdup(photo_path); } /* * set webm codecs in codecs list * args: * none * * asserts: * none * * returns: none */ void set_webm_codecs() { switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: set_webm_codecs_gtk3(); break; } } /* * GUI warning/error dialog * args: * title - dialog title string * message - error message string * fatal - flag a fatal error (display device list combo box) * * asserts: * none * * returns: none */ void gui_error( const char *title, const char *message, int fatal) { switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: gui_error_gtk3(title, message, fatal); break; } } /* * adds a message to the status bar * args: * message - message string * * asserts: * none * * returns: none */ void gui_status_message(const char *message) { switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: gui_status_message_gtk3(message); break; } printf("GUVCVIEW: (status) %s\n", message); } /* * GUI initialization * args: * gui - gui API to use (GUI_NONE, GUI_GTK3, ...) * width - window width * height - window height * control_panel - flag control panel mode (1 -set; 0 -no) * * asserts: * none * * returns: error code */ int gui_attach(int gui, int width, int height, int control_panel) { int ret = 0; is_control_panel = control_panel; gui_api = gui; switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: ret = gui_attach_gtk3(width, height); if(ret) gui_api = GUI_NONE; break; } return ret; } /* * run the GUI loop * args: * none * * asserts: * none * * returns: error code */ int gui_run() { int ret = 0; switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: ret = gui_run_gtk3(); break; } return ret; } /* * closes and cleans the GUI * args: * none * * asserts: * none * * returns: none */ void gui_close() { if(debug_level > 1) printf("GUVCVIEW: free profile name\n"); if(profile_name != NULL) free(profile_name); profile_name = NULL; if(debug_level > 1) printf("GUVCVIEW: free profile path\n"); if(profile_path != NULL) free(profile_path); profile_path = NULL; if(debug_level > 1) printf("GUVCVIEW: free video name\n"); if(video_name != NULL) free(video_name); video_name = NULL; if(debug_level > 1) printf("GUVCVIEW: free video path\n"); if(video_path != NULL) free(video_path); video_path = NULL; if(debug_level > 1) printf("GUVCVIEW: free photo name\n"); if(photo_name != NULL) free(photo_name); photo_name = NULL; if(debug_level > 1) printf("GUVCVIEW: free photo path\n"); if(photo_path != NULL) free(photo_path); photo_path = NULL; if(debug_level > 1) printf("GUVCVIEW: close GUI API\n"); switch(gui_api) { case GUI_NONE: break; case GUI_GTK3: default: gui_close_gtk3(); break; } } guvcview-2.0.2+debian/guvcview/gui.h000066400000000000000000000205201256377215300173760ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GUI_H #define GUI_H #include "gviewv4l2core.h" #define GUI_NONE (0) #define GUI_GTK3 (1) #define DEF_ACTION_IMAGE (0) #define DEF_ACTION_VIDEO (1) /* * gets the current video codec index * args: * none * * asserts: * none * * returns: current codec index */ int get_video_codec_ind(); /* * sets the current video codec index * args: * index - codec index * * asserts: * none * * returns: none */ void set_video_codec_ind(int index); /* * gets the current audio codec index * args: * none * * asserts: * none * * returns: current codec index */ int get_audio_codec_ind(); /* * sets the current audio codec index * args: * index - codec index * * asserts: * none * * returns: none */ void set_audio_codec_ind(int index); /* * gets the current fps numerator * args: * none * * asserts: * none * * returns: current fps numerator */ //int gui_get_fps_num(); /* * gets the current fps denominator * args: * none * * asserts: * none * * returns: current fps denominator */ //int gui_get_fps_denom(); /* * stores the fps * args: * fps - array with fps numerator and denominator * * asserts: * none * * returns: none */ void gui_set_fps(int fps[2]); /* * gets the default camera button action * args: * none * * asserts: * none * * returns: default camera button action */ int get_default_camera_button_action(); /* * sets the default camera button action * args: * action: camera button default action * * asserts: * none * * returns: none */ void set_default_camera_button_action(int action); /* * gets the control profile file name * args: * none * * asserts: * none * * returns: control profile file name */ char *get_profile_name(); /* * sets the control profile file name * args: * name: control profile file name * * asserts: * none * * returns: none */ void set_profile_name(const char *name); /* * gets the control profile path (to dir) * args: * none * * asserts: * none * * returns: control profile file name */ char *get_profile_path(); /* * sets the control profile path (to dir) * args: * path: control profile path * * asserts: * none * * returns: none */ void set_profile_path(const char *path); /* * gets video sufix flag * args: * none * * asserts: * none * * returns: video sufix flag */ int get_video_sufix_flag(); /* * sets the video sufix flag * args: * flag: video sufix flag * * asserts: * none * * returns: none */ void set_video_sufix_flag(int flag); /* * gets video muxer * args: * none * * asserts: * none * * returns: video muxer */ int get_video_muxer(); /* * sets video muxer * args: * muxer - video muxer (ENCODER_MUX_[MKV|WEBM|AVI]) * * asserts: * none * * returns: none */ void set_video_muxer(int muxer); /* * gets the video file basename * args: * none * * asserts: * none * * returns: video file basename */ char *get_video_name(); /* * sets the video file basename * args: * name: video file basename * * asserts: * none * * returns: none */ void set_video_name(const char *name); /* * gets the video file path (to dir) * args: * none * * asserts: * none * * returns: video file path */ char *get_video_path(); /* * sets video path (to dir) * args: * path: video file path * * asserts: * none * * returns: none */ void set_video_path(const char *path); /* * gets photo sufix flag * args: * none * * asserts: * none * * returns: photo sufix flag */ int get_photo_sufix_flag(); /* * sets the photo sufix flag * args: * flag: photo sufix flag * * asserts: * none * * returns: none */ void set_photo_sufix_flag(int flag); /* * gets photo format * args: * none * * asserts: * none * * returns: photo format */ int get_photo_format(); /* * sets photo format * args: * format - photo format (IMG_FMT_[JPG|BMP|PNG|RAW]) * * asserts: * none * * returns: none */ void set_photo_format(int format); /* * gets the photo file basename * args: * none * * asserts: * none * * returns: photo file basename */ char *get_photo_name(); /* * sets the photo file basename and image format * args: * name: photo file basename * * asserts: * none * * returns: none */ void set_photo_name(const char *name); /* * gets the photo file path (to dir) * args: * none * * asserts: * none * * returns: photo file path */ char *get_photo_path(); /* * sets photo path (to dir) * args: * path: photo file path * * asserts: * none * * returns: none */ void set_photo_path(const char *path); /* * click image capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_image_capture_button(); /* * click video capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_video_capture_button(); /* * sets the Image capture button label * args: * label: Image capture button label * * asserts: * none * * returns: none */ void gui_set_image_capture_button_label(const char *label); /* * sets the Video capture button status (on|off) * args: * flag: video capture button status * * asserts: * none * * returns: none */ void gui_set_video_capture_button_status(int flag); /* * set webm codecs in codecs list * args: * none * * asserts: * none * * returns: none */ void set_webm_codecs(); /* * GUI warning/error dialog * args: * title - dialog title string * message - error message string * fatal - flag a fatal error (display device list combo box) * * asserts: * none * * returns: none */ void gui_error( const char *title, const char *message, int fatal); /* * adds a message to the status bar * args: * message - message string * * asserts: * none * * returns: none */ void gui_status_message(const char *message); /* * GUI initialization * args: * gui - gui API to use (GUI_NONE, GUI_GTK3, ...) * width - window width * height - window height * control_panel - flag control panel mode (1 -set; 0 -no) * * asserts: * none * * returns: error code */ int gui_attach(int gui, int width, int height, int control_panel); /* * run the GUI loop * args: * none * * asserts: * none * * returns: error code */ int gui_run(); /* * closes and cleans the GUI * args: * none * * asserts: * none * * returns: none */ void gui_close(); #endif guvcview-2.0.2+debian/guvcview/gui_gtk3.c000066400000000000000000000606441256377215300203340ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" #include "video_capture.h" extern int debug_level; extern int is_control_panel; /* The main window*/ static GtkWidget *main_window = NULL; /* The status bar*/ static GtkWidget *status_bar = NULL; static int status_warning_id = 0; /*The photo capture button*/ static GtkWidget *CapImageButt = NULL; /*The video capture button*/ static GtkWidget *CapVideoButt = NULL; /*group list for menu video codecs*/ GSList *video_codec_group = NULL; /*group list for menu audio codecs*/ GSList *audio_codec_group = NULL; /*flag gtk3_main call*/ static int gtk_main_called = 0; /*flag gtk3_init called*/ static int gtk_init_called = 0; /*device list widget*/ static GtkWidget *wgtDevices = NULL; /*timer id for devce list events check*/ static int gtk_devices_timer_id = 0; /* * sets the status message * args: * message - message string * * returns: FALSE */ static gboolean set_status_message(const char *message) { if(status_bar) { gtk_statusbar_pop (GTK_STATUSBAR(status_bar), status_warning_id); gtk_statusbar_push (GTK_STATUSBAR(status_bar), status_warning_id, message); } /*execute only once*/ return FALSE; } /* * adds a message to the status bar * args: * message - message string * * asserts: * none * * returns: none */ void gui_status_message_gtk3(const char *message) { /*this maybe called from a different thread, so protect it*/ gdk_threads_add_idle ((GSourceFunc)set_status_message, (gpointer) message); } /* * get the main window widget * args: * none * * asserts: * none * * returns: pointer to main window (GtkWidget) */ GtkWidget *get_main_window_gtk3() { return main_window; } /* * get the device list widget * args: * none * * asserts: * none * * returns: pointer to the device list widget (GtkWidget) */ GtkWidget *get_wgtDevices_gtk3() { return wgtDevices; } /* * set the device list widget * args: * widget - pointer to the device list widget * * asserts: * none * * returns: void */ void set_wgtDevices_gtk3(GtkWidget *widget) { wgtDevices = widget; } /* * get the video codec group list * args: * none * * asserts: * none * * returns: pointer to GSList of video codecs */ GSList *get_video_codec_group_list_gtk3() { return video_codec_group; } /* * set the video codec group list * args: * list - pointer to GSList * * asserts: * none * * returns: none */ void set_video_codec_group_list_gtk3(GSList *list) { video_codec_group = list; } /* * set webm codecs in codecs list * args: * none * * asserts: * none * * returns: none */ void set_webm_codecs_gtk3() { /*force webm codecs*/ int video_codec_ind = encoder_get_webm_video_codec_index(); set_video_codec_ind(video_codec_ind); int audio_codec_ind = encoder_get_webm_audio_codec_index(); set_audio_codec_ind(audio_codec_ind); /*widgets*/ GSList *vgroup = get_video_codec_group_list_gtk3(); int index = g_slist_length (vgroup) - (get_video_codec_ind() + 1); GtkWidget* video_codec_item = g_slist_nth_data (vgroup, index); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(video_codec_item), TRUE); GSList *agroup = get_audio_codec_group_list_gtk3(); index = g_slist_length (agroup) - (get_audio_codec_ind() + 1); GtkWidget* audio_codec_item = g_slist_nth_data (agroup, index); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(audio_codec_item), TRUE); } /* * get the audio codec group list * args: * none * * asserts: * none * * returns: pointer to GSList of audio codecs */ GSList *get_audio_codec_group_list_gtk3() { return audio_codec_group; } /* * set the audio codec group list * args: * list - pointer to GSList * * asserts: * none * * returns: none */ void set_audio_codec_group_list_gtk3(GSList *list) { audio_codec_group = list; } /* * sends a click event for image capture button * args: * pointer to function data * * asserts: * none * * returns: FALSE */ static gboolean image_capture_toggle_button(gpointer *data) { if(!CapImageButt) return FALSE; gtk_button_clicked(GTK_BUTTON(CapImageButt)); return FALSE; } /* * click image capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_image_capture_button_gtk3() { /*protect the call since it may come from a different thread*/ gdk_threads_add_idle ((GSourceFunc) image_capture_toggle_button, NULL); } /* * sets the Image capture button label * args: * label: Image capture button label * * asserts: * none * * returns: none */ void gui_set_image_capture_button_label_gtk3(const char *label) { if(!CapImageButt) return; gtk_button_set_label(GTK_BUTTON(CapImageButt), label); } /* * toggles video capture button status * args: * pointer to function data * * asserts: * none * * returns: FALSE */ static gboolean video_capture_toggle_button(gpointer *data) { if(!CapVideoButt) return FALSE; int active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(CapVideoButt)); /*invert status*/ if(active > 0) active = -1; else active = 1; gui_set_video_capture_button_status_gtk3(active); return FALSE; } /* * click video capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_video_capture_button_gtk3() { /*protect the call since it may come from a different thread*/ gdk_threads_add_idle ((GSourceFunc) video_capture_toggle_button, NULL); } /* * sets the Video capture button status (on|off) * args: * flag: video capture button status * * asserts: * none * * returns: none */ void gui_set_video_capture_button_status_gtk3(int flag) { if(!CapVideoButt) return; if(flag > 0) { gtk_button_set_label(GTK_BUTTON(CapVideoButt), _("Stop Video (V)")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CapVideoButt), TRUE); } else { gtk_button_set_label(GTK_BUTTON(CapVideoButt), _("Cap. Video (V)")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CapVideoButt), FALSE); } } /* * GUI warning/error dialog * args: * title - dialog title string * message - error message string * fatal - flag a fatal error (display device list combo box) * * asserts: * none * * returns: none */ void gui_error_gtk3( const char *title, const char *message, int fatal) { if(!gtk_init_called) { if(!gtk_init_check(NULL, NULL)) { fprintf(stderr, "GUVCVIEW: (GUI) Gtk3 can't open display\n"); fprintf(stderr, "%s: %s \n", title, message); return; } gtk_init_called = 1; } /*simple warning message - not fatal and no device selection*/ if(!fatal) { GtkWidget *warndialog; warndialog = gtk_message_dialog_new (GTK_WINDOW(main_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, "%s",gettext(title)); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(warndialog), "%s",gettext(message)); gtk_widget_show(warndialog); gtk_dialog_run (GTK_DIALOG (warndialog)); gtk_widget_destroy (warndialog); return; } /*fatal error message*/ v4l2_device_list *device_list = v4l2core_get_device_list(); /*add device list (more than one device)*/ int show_dev_list = (device_list->num_devices > 1) ? 1: 0; GtkWidget *errdialog = NULL; if(show_dev_list) errdialog = gtk_dialog_new_with_buttons (_("Error"), GTK_WINDOW(main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_Ok"), GTK_RESPONSE_ACCEPT, _("_Cancel"), GTK_RESPONSE_REJECT, NULL); else errdialog = gtk_dialog_new_with_buttons (_("Error"), GTK_WINDOW(main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_Ok"), GTK_RESPONSE_ACCEPT, NULL); GtkWidget *table = gtk_grid_new(); GtkWidget *title_lbl = gtk_label_new (gettext(title)); gtk_widget_override_font(title_lbl, pango_font_description_from_string ("Sans bold 10")); gtk_misc_set_alignment (GTK_MISC (title_lbl), 0, 0); gtk_grid_attach (GTK_GRID (table), title_lbl, 0, 0, 2, 1); gtk_widget_show (title_lbl); GtkWidget *text = gtk_label_new (gettext(message)); gtk_widget_override_font(text, pango_font_description_from_string ("Sans italic 8")); gtk_misc_set_alignment (GTK_MISC (text), 0, 0); gtk_grid_attach (GTK_GRID (table), text, 0, 1, 2, 1); gtk_widget_show (text); GtkWidget *wgtDevices = NULL; if(show_dev_list) { GtkWidget *text2 = gtk_label_new (_("\nYou have more than one video device installed.\n" "Do you want to try another one ?\n")); gtk_widget_override_font(text2, pango_font_description_from_string ("Sans 10")); gtk_misc_set_alignment (GTK_MISC (text2), 0, 0); gtk_grid_attach (GTK_GRID (table), text2, 0, 2, 2, 1); gtk_widget_show (text2); GtkWidget *dev_lbl = gtk_label_new(_("Device:")); gtk_misc_set_alignment (GTK_MISC (dev_lbl), 0.5, 0.5); gtk_grid_attach (GTK_GRID(table), dev_lbl, 0, 3, 1, 1); gtk_widget_show (dev_lbl); wgtDevices = gtk_combo_box_text_new (); gtk_widget_set_halign (wgtDevices, GTK_ALIGN_FILL); gtk_widget_set_hexpand (wgtDevices, TRUE); int i = 0; for(i = 0; i < (device_list->num_devices); i++) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtDevices), device_list->list_devices[i].name); } /*select the last listed device by default*/ gtk_combo_box_set_active(GTK_COMBO_BOX(wgtDevices), device_list->num_devices - 1); gtk_grid_attach(GTK_GRID(table), wgtDevices, 1, 3, 1, 1); gtk_widget_show (wgtDevices); } GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (errdialog)); gtk_container_add (GTK_CONTAINER (content_area), table); gtk_widget_show (table); int result = gtk_dialog_run (GTK_DIALOG (errdialog)); if(show_dev_list) { switch (result) { case GTK_RESPONSE_ACCEPT: { /*launch another guvcview instance for the selected device*/ int index = gtk_combo_box_get_active(GTK_COMBO_BOX(wgtDevices)); char videodevice[30]; strncpy(videodevice, device_list->list_devices[index].device, 29); gchar *command = g_strjoin("", g_get_prgname(), " --device=", videodevice, NULL); /*spawn new process*/ GError *error = NULL; if(!(g_spawn_command_line_async(command, &error))) { fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); g_error_free( error ); } g_free(command); } break; default: /* do nothing since dialog was cancelled or closed */ break; } } gtk_widget_destroy (errdialog); quit_callback(NULL); /*terminate the program*/ } /* * GUI initialization * args: * width - window width * height - window height * * asserts: * none * * returns: error code (0 -OK) */ int gui_attach_gtk3(int width, int height) { if(!gtk_init_called) { if(!gtk_init_check(NULL, NULL)) { fprintf(stderr, "GUVCVIEW: (GUI) Gtk3 can't open display\n"); return -1; } gtk_init_called = 1; } /*check for device errors*/ //if(!device) //{ // gui_error("Guvcview error", "no video device found", 1); // return -1; //} g_set_application_name(_("Guvcview Video Capture")); #if !GTK_VER_AT_LEAST(3,12) /* make sure the type is realized so that we can change the properties*/ g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON)); /* make sure gtk-button-images property is set to true (defaults to false in karmic)*/ g_object_set (gtk_settings_get_default (), "gtk-button-images", TRUE, NULL); #endif /* Create a main window */ main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (main_window), _("Guvcview")); gtk_widget_show (main_window); /* get screen resolution */ GdkScreen* screen = NULL; screen = gtk_window_get_screen(GTK_WINDOW(main_window)); int desktop_width = gdk_screen_get_width(screen); int desktop_height = gdk_screen_get_height(screen); if(debug_level > 0) printf("GUVCVIEW: (GUI) Screen resolution is (%d x %d)\n", desktop_width, desktop_height); if((width > desktop_width) && (desktop_width > 0)) width = desktop_width; if((height > desktop_height) && (desktop_height > 0)) height = desktop_height; gtk_window_resize(GTK_WINDOW(main_window), width, height); /* Add delete event handler */ g_signal_connect(GTK_WINDOW(main_window), "delete_event", G_CALLBACK(delete_event), NULL); /*window icon*/ char* icon1path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/guvcview.png", NULL); if (g_file_test(icon1path, G_FILE_TEST_EXISTS)) gtk_window_set_icon_from_file(GTK_WINDOW (main_window), icon1path, NULL); g_free(icon1path); /*---------------------------- Main table ---------------------------------*/ GtkWidget *maintable = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2); gtk_widget_show (maintable); /*----------------------------- Top Menu ----------------------------------*/ gui_attach_gtk3_menu(maintable); /*----------------------------- Buttons -----------------------------------*/ GtkWidget *HButtonBox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_halign (HButtonBox, GTK_ALIGN_FILL); gtk_widget_set_hexpand (HButtonBox, TRUE); gtk_button_box_set_layout(GTK_BUTTON_BOX(HButtonBox),GTK_BUTTONBOX_SPREAD); gtk_box_set_homogeneous(GTK_BOX(HButtonBox),TRUE); gtk_widget_show(HButtonBox); /*photo button*/ if(check_photo_timer()) { CapImageButt = gtk_button_new_with_mnemonic (_("Stop Cap. (I)")); g_object_set_data (G_OBJECT (CapImageButt), "control_info", GINT_TO_POINTER(1)); } else { CapImageButt = gtk_button_new_with_mnemonic (_("Cap. Image (I)")); g_object_set_data (G_OBJECT (CapImageButt), "control_info", GINT_TO_POINTER(0)); } char *pix2path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/camera.png",NULL); if (g_file_test(pix2path, G_FILE_TEST_EXISTS)) { GtkWidget *ImgButton_Img = gtk_image_new_from_file (pix2path); #if GTK_VER_AT_LEAST(3,12) gtk_button_set_always_show_image(GTK_BUTTON(CapImageButt), TRUE); #endif gtk_button_set_image(GTK_BUTTON(CapImageButt), ImgButton_Img); gtk_button_set_image_position(GTK_BUTTON(CapImageButt), GTK_POS_TOP); } g_free(pix2path); gtk_box_pack_start(GTK_BOX(HButtonBox), CapImageButt, TRUE, TRUE, 2); gtk_widget_show (CapImageButt); g_signal_connect (GTK_BUTTON(CapImageButt), "clicked", G_CALLBACK (capture_image_clicked), NULL); /*video button*/ CapVideoButt = gtk_toggle_button_new_with_mnemonic (_("Cap. Video (V)")); gui_set_video_capture_button_status_gtk3(get_encoder_status()); char *pix3path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/movie.png",NULL); if (g_file_test(pix3path, G_FILE_TEST_EXISTS)) { GtkWidget *VideoButton_Img = gtk_image_new_from_file (pix3path); #if GTK_VER_AT_LEAST(3,12) gtk_button_set_always_show_image(GTK_BUTTON(CapVideoButt), TRUE); #endif gtk_button_set_image(GTK_BUTTON(CapVideoButt), VideoButton_Img); gtk_button_set_image_position(GTK_BUTTON(CapVideoButt), GTK_POS_TOP); } g_free(pix3path); gtk_box_pack_start(GTK_BOX(HButtonBox), CapVideoButt, TRUE, TRUE, 2); gtk_widget_show (CapVideoButt); g_signal_connect (GTK_BUTTON(CapVideoButt), "clicked", G_CALLBACK (capture_video_clicked), NULL); /*quit button*/ //GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); GtkWidget *quitButton = gtk_button_new_with_mnemonic (_("_Quit")); char* pix4path = g_strconcat (PACKAGE_DATA_DIR, "/pixmaps/guvcview/close.png", NULL); if (g_file_test(pix4path,G_FILE_TEST_EXISTS)) { GtkWidget *QButton_Img = gtk_image_new_from_file (pix4path); #if GTK_VER_AT_LEAST(3,12) gtk_button_set_always_show_image(GTK_BUTTON(quitButton), TRUE); #endif gtk_button_set_image(GTK_BUTTON(quitButton), QButton_Img); gtk_button_set_image_position(GTK_BUTTON(quitButton), GTK_POS_TOP); } /*must free path strings*/ g_free(pix4path); gtk_box_pack_start(GTK_BOX(HButtonBox), quitButton, TRUE, TRUE, 2); gtk_widget_show_all (quitButton); g_signal_connect (GTK_BUTTON(quitButton), "clicked", G_CALLBACK (quit_button_clicked), NULL); gtk_box_pack_start(GTK_BOX(maintable), HButtonBox, FALSE, TRUE, 2); /*--------------------------- Tab container -------------------------------*/ GtkWidget *tab_box = gtk_notebook_new(); gtk_widget_show (tab_box); /*------------------------ Image controls Tab -----------------------------*/ GtkWidget *scroll_1 = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_1), GTK_CORNER_TOP_LEFT); gtk_widget_show(scroll_1); /* * viewport is only needed for gtk < 3.8 * for 3.8 and above controls tab can be directly added to scroll1 */ GtkWidget* viewport = gtk_viewport_new(NULL,NULL); gtk_widget_show(viewport); gtk_container_add(GTK_CONTAINER(scroll_1), viewport); gui_attach_gtk3_v4l2ctrls(viewport); GtkWidget *tab_1 = gtk_grid_new(); gtk_widget_show (tab_1); GtkWidget *tab_1_label = gtk_label_new(_("Image Controls")); gtk_widget_show (tab_1_label); /** check for files */ gchar *tab_1_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); /** don't test for file - use default empty image if load fails */ /** get icon image*/ GtkWidget *tab_1_icon = gtk_image_new_from_file(tab_1_icon_path); gtk_widget_show (tab_1_icon); g_free(tab_1_icon_path); gtk_grid_attach (GTK_GRID(tab_1), tab_1_icon, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(tab_1), tab_1_label, 1, 0, 1, 1); gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_1, tab_1); /*----------------------------H264 Controls Tab --------------------------*/ if(v4l2core_get_h264_unit_id() > 0) { GtkWidget *scroll_2 = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_2), GTK_CORNER_TOP_LEFT); gtk_widget_show(scroll_2); /* * viewport is only needed for gtk < 3.8 * for 3.8 and above controls tab can be directly added to scroll1 */ GtkWidget* viewport2 = gtk_viewport_new(NULL,NULL); gtk_widget_show(viewport2); gtk_container_add(GTK_CONTAINER(scroll_2), viewport2); gui_attach_gtk3_h264ctrls(viewport2); GtkWidget *tab_2 = gtk_grid_new(); gtk_widget_show (tab_2); GtkWidget *tab_2_label = gtk_label_new(_("H264 Controls")); gtk_widget_show (tab_2_label); /** check for files */ gchar *tab_2_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/image_controls.png",NULL); /** don't test for file - use default empty image if load fails */ /** get icon image*/ GtkWidget *tab_2_icon = gtk_image_new_from_file(tab_2_icon_path); gtk_widget_show (tab_2_icon); g_free(tab_2_icon_path); gtk_grid_attach (GTK_GRID(tab_2), tab_2_icon, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(tab_2), tab_2_label, 1, 0, 1, 1); gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_2, tab_2); } /*exclude video and audio tabs if we are in control panel mode*/ if(!is_control_panel) { /*----------------------- Video controls Tab ------------------------------*/ GtkWidget *scroll_3 = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_3), GTK_CORNER_TOP_LEFT); gtk_widget_show(scroll_3); /* * viewport is only needed for gtk < 3.8 * for 3.8 and above controls tab can be directly added to scroll1 */ GtkWidget* viewport3 = gtk_viewport_new(NULL,NULL); gtk_widget_show(viewport3); gtk_container_add(GTK_CONTAINER(scroll_3), viewport3); gui_attach_gtk3_videoctrls(viewport3); GtkWidget *tab_3 = gtk_grid_new(); gtk_widget_show (tab_3); GtkWidget *tab_3_label = gtk_label_new(_("Video Controls")); gtk_widget_show (tab_3_label); /** check for files */ gchar *tab_3_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/video_controls.png",NULL); /** don't test for file - use default empty image if load fails */ /** get icon image*/ GtkWidget *tab_3_icon = gtk_image_new_from_file(tab_3_icon_path); gtk_widget_show (tab_3_icon); g_free(tab_3_icon_path); gtk_grid_attach (GTK_GRID(tab_3), tab_3_icon, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(tab_3), tab_3_label, 1, 0, 1, 1); gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_3, tab_3); /*----------------------- Audio controls Tab ------------------------------*/ GtkWidget *scroll_4 = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(scroll_4), GTK_CORNER_TOP_LEFT); gtk_widget_show(scroll_4); /* * viewport is only needed for gtk < 3.8 * for 3.8 and above controls tab can be directly added to scroll1 */ GtkWidget* viewport4 = gtk_viewport_new(NULL,NULL); gtk_widget_show(viewport4); gtk_container_add(GTK_CONTAINER(scroll_4), viewport4); gui_attach_gtk3_audioctrls(viewport4); GtkWidget *tab_4 = gtk_grid_new(); gtk_widget_show (tab_4); GtkWidget *tab_4_label = gtk_label_new(_("Audio Controls")); gtk_widget_show (tab_4_label); /** check for files */ gchar *tab_4_icon_path = g_strconcat (PACKAGE_DATA_DIR,"/pixmaps/guvcview/audio_controls.png",NULL); /** don't test for file - use default empty image if load fails */ /** get icon image*/ GtkWidget *tab_4_icon = gtk_image_new_from_file(tab_4_icon_path); gtk_widget_show (tab_4_icon); g_free(tab_4_icon_path); gtk_grid_attach (GTK_GRID(tab_4), tab_4_icon, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(tab_4), tab_4_label, 1, 0, 1, 1); gtk_notebook_append_page(GTK_NOTEBOOK(tab_box), scroll_4, tab_4); } /* Attach the notebook (tabs) */ gtk_box_pack_start(GTK_BOX(maintable), tab_box, TRUE, TRUE, 2); /*-------------------------- Status bar ------------------------------------*/ status_bar = gtk_statusbar_new(); status_warning_id = gtk_statusbar_get_context_id (GTK_STATUSBAR(status_bar), "warning"); gtk_widget_show(status_bar); /** add the status bar*/ gtk_box_pack_start(GTK_BOX(maintable), status_bar, FALSE, FALSE, 2); /* attach to main window container */ gtk_container_add (GTK_CONTAINER (main_window), maintable); /* add key events*/ gtk_widget_add_events (GTK_WIDGET (main_window), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); g_signal_connect (GTK_WINDOW(main_window), "key_press_event", G_CALLBACK(window_key_pressed), NULL); /* add update timers: * devices */ gtk_devices_timer_id = g_timeout_add( 500, check_device_events, NULL); return 0; } /* * run the GUI loop * args: * none * * asserts: * none * * returns: error code */ int gui_run_gtk3() { int ret = 0; gtk_main_called = 1; gtk_main(); return ret; } /* * closes and cleans the GTK3 GUI * args: * none * * asserts: * none * * returns: none */ void gui_close_gtk3() { if(gtk_main_called) gtk_main_quit(); gui_clean_gtk3_control_widgets_list(); gtk_main_called = 0; } guvcview-2.0.2+debian/guvcview/gui_gtk3.h000066400000000000000000000165241256377215300203370ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GUI_GTK3_H #define GUI_GTK3_H #include #include /* support for internationalization - i18n */ //#include #define GTK_VER_AT_LEAST(major,minor) ( GTK_MAJOR_VERSION > major || \ (GTK_MAJOR_VERSION == major && \ GTK_MINOR_VERSION >= minor)) #include "gviewv4l2core.h" typedef struct _control_widgets_t { int id; /*control id*/ GtkWidget *label; /*control label widget*/ GtkWidget *widget; /*control widget 1*/ GtkWidget *widget2; /*control widget 2*/ } control_widgets_t; typedef struct _audio_widgets_t { GtkWidget *api; /* api control */ GtkWidget *device; /* device control */ GtkWidget *channels; /* channels control */ GtkWidget *samprate; /* samprate control */ GtkWidget *latency; /* latency control */ } audio_widgets_t; /* * get the video codec group list * args: * none * * asserts: * none * * returns: pointer to GSList of video codecs */ GSList *get_video_codec_group_list_gtk3(); /* * set the video codec group list * args: * list - pointer to GSList * * asserts: * none * * returns: none */ void set_video_codec_group_list_gtk3(GSList *list); /* * get the audio codec group list * args: * none * * asserts: * none * * returns: pointer to GSList of audio codecs */ GSList *get_audio_codec_group_list_gtk3(); /* * set the audio codec group list * args: * list - pointer to GSList * * asserts: * none * * returns: none */ void set_audio_codec_group_list_gtk3(GSList *list); /* * set webm codecs in codecs list * args: * none * * asserts: * none * * returns: none */ void set_webm_codecs_gtk3(); /* * GUI warning/error dialog * args: * title - dialog title string * message - error message string * fatal - flag a fatal error (display device list combo box) * * asserts: * none * * returns: none */ void gui_error_gtk3( const char *title, const char *message, int fatal); /* * GUI initialization * args: * width - window width * height - window height * * asserts: * none * * returns: error code */ int gui_attach_gtk3(int width, int height); /* * run the GUI loop * args: * none * * asserts: * none * * returns: error code */ int gui_run_gtk3(); /* * closes and cleans the GTK3 GUI * args: * none * * asserts: * none * * returns: none */ void gui_close_gtk3(); /* * attach top menu widget * args: * parent - menu parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_menu(GtkWidget *parent); /* * attach v4l2 controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_v4l2ctrls(GtkWidget *parent); /* * attach h264 controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_h264ctrls (GtkWidget *parent); /* * attach v4l2 video controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_videoctrls(GtkWidget *parent); /* * attach audio controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_audioctrls(GtkWidget *parent); /* * get gtk control widgets for v4l2 control id * args: * id - v4l2 control id * * asserts: * none * * returns: pointer to control_widgets_t or null */ control_widgets_t *gui_gtk3_get_widgets_by_id(int id); /* * update the controls widgets state * args: * none * * asserts: * none * * returns: none */ void gui_gtk3_update_controls_state(); /* * clean gtk3 control widgets list * args: * none * * asserts: * none * * returns: none */ void gui_clean_gtk3_control_widgets_list(); /* * adds a message to the status bar * args: * message - message string * * asserts: * none * * returns: none */ void gui_status_message_gtk3(const char *message); /* * click image capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_image_capture_button_gtk3(); /* * sets the Image capture button label * args: * label: Image capture button label * * asserts: * none * * returns: none */ void gui_set_image_capture_button_label_gtk3(const char *label); /* * click video capture button * args: * none * * asserts: * none * * returns: none */ void gui_click_video_capture_button_gtk3(); /* * sets the Video capture button status (on|off) * args: * flag: video capture button status * * asserts: * none * * returns: none */ void gui_set_video_capture_button_status_gtk3(int flag); /* * get the main window widget * args: * none * * asserts: * none * * returns: pointer to main window (GtkWidget) */ GtkWidget *get_main_window_gtk3(); /* * get the device list widget * args: * none * * asserts: * none * * returns: pointer to the device list widget (GtkWidget) */ GtkWidget *get_wgtDevices_gtk3(); /* * set the device list widget * args: * widget - pointer to the device list widget * * asserts: * none * * returns: void */ void set_wgtDevices_gtk3(GtkWidget *widget); #endif guvcview-2.0.2+debian/guvcview/gui_gtk3_audioctrls.c000066400000000000000000000365701256377215300225660ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" #include "gviewaudio.h" #include "video_capture.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" extern int debug_level; static audio_widgets_t my_audio_widgets = { .api = NULL, .device = NULL, .channels = NULL, .samprate = NULL, .latency = NULL, }; /* * attach audio controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_audioctrls(GtkWidget *parent) { /*assertions*/ assert(parent != NULL); if(debug_level > 1) printf("GUVCVIEW: attaching audio controls\n"); int line = 0; /*get the current audio context*/ audio_context_t *audio_ctx = get_audio_context(); GtkWidget *audio_controls_grid = gtk_grid_new(); gtk_widget_show (audio_controls_grid); gtk_grid_set_column_homogeneous (GTK_GRID(audio_controls_grid), FALSE); gtk_widget_set_hexpand (audio_controls_grid, TRUE); gtk_widget_set_halign (audio_controls_grid, GTK_ALIGN_FILL); gtk_grid_set_row_spacing (GTK_GRID(audio_controls_grid), 4); gtk_grid_set_column_spacing (GTK_GRID (audio_controls_grid), 4); gtk_container_set_border_width (GTK_CONTAINER (audio_controls_grid), 2); /*API*/ line++; GtkWidget *label_SndAPI = gtk_label_new(_("Audio API:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SndAPI), 1); gtk_label_set_yalign(GTK_LABEL(label_SndAPI), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SndAPI), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndAPI, 0, line, 1, 1); gtk_widget_show (label_SndAPI); my_audio_widgets.api = gtk_combo_box_text_new (); gtk_widget_set_halign (my_audio_widgets.api, GTK_ALIGN_FILL); gtk_widget_set_hexpand (my_audio_widgets.api, TRUE); gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.api, 1, line, 1, 1); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("NO SOUND")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("PORTAUDIO")); #if HAS_PULSEAUDIO gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.api),_("PULSEAUDIO")); #endif gtk_widget_show (my_audio_widgets.api); int api = AUDIO_NONE; if(audio_ctx != NULL) api = audio_ctx->api; gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.api), api); gtk_widget_set_sensitive (my_audio_widgets.api, TRUE); g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.api), "changed", G_CALLBACK (audio_api_changed), &my_audio_widgets); /*devices*/ line++; GtkWidget *label_SndDevice = gtk_label_new(_("Input Device:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SndDevice), 1); gtk_label_set_yalign(GTK_LABEL(label_SndDevice), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SndDevice), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndDevice, 0, line, 1, 1); gtk_widget_show (label_SndDevice); my_audio_widgets.device = gtk_combo_box_text_new (); gtk_widget_set_halign (my_audio_widgets.device, GTK_ALIGN_FILL); gtk_widget_set_hexpand (my_audio_widgets.device, TRUE); gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.device, 1, line, 1, 1); gtk_widget_show (my_audio_widgets.device); if(audio_ctx != NULL) { int i = 0; for(i = 0; i < audio_ctx->num_input_dev; ++i) { gtk_combo_box_text_append_text( GTK_COMBO_BOX_TEXT(my_audio_widgets.device), audio_ctx->list_devices[i].description); } gtk_widget_set_sensitive (my_audio_widgets.device, TRUE); gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.device), audio_ctx->device); } else gtk_widget_set_sensitive (my_audio_widgets.device, FALSE); g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.device), "changed", G_CALLBACK (audio_device_changed), &my_audio_widgets); /*sample rate*/ line++; GtkWidget *label_SndSampRate = gtk_label_new(_("Sample Rate:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SndSampRate), 1); gtk_label_set_yalign(GTK_LABEL(label_SndSampRate), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SndSampRate), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndSampRate, 0, line, 1, 1); gtk_widget_show (label_SndSampRate); my_audio_widgets.samprate = gtk_combo_box_text_new (); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate),_("Dev. Default")); /* add some standard sample rates: * 96000, 88200, 64000, 48000, 44100, * 32000, 24000, 22050, 16000, 12000, * 11025, 8000, 7350 */ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "7350"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "8000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "11025"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "12000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "16000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "22050"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "24000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "32000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "44100"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "48000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "64000"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "88200"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "96000"); gtk_widget_set_halign (my_audio_widgets.samprate, GTK_ALIGN_FILL); gtk_widget_set_hexpand (my_audio_widgets.samprate, TRUE); gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.samprate, 1, line, 1, 1); gtk_widget_show (my_audio_widgets.samprate); gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.samprate), 0); /*device default*/ if(audio_ctx != NULL) gtk_widget_set_sensitive (my_audio_widgets.samprate, TRUE); else gtk_widget_set_sensitive (my_audio_widgets.samprate, FALSE); g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.samprate), "changed", G_CALLBACK (audio_samplerate_changed), &my_audio_widgets); /*channels*/ line++; GtkWidget *label_SndNumChan = gtk_label_new(_("Channels:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SndNumChan), 1); gtk_label_set_yalign(GTK_LABEL(label_SndNumChan), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SndNumChan), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_SndNumChan, 0, line, 1, 1); gtk_widget_show (label_SndNumChan); my_audio_widgets.channels = gtk_combo_box_text_new (); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("Dev. Default")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("1 - mono")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(my_audio_widgets.channels),_("2 - stereo")); gtk_widget_set_halign (my_audio_widgets.channels, GTK_ALIGN_FILL); gtk_widget_set_hexpand (my_audio_widgets.channels, TRUE); gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.channels, 1, line, 1, 1); gtk_widget_show (my_audio_widgets.channels); gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets.channels), 0); /*device default*/ if(audio_ctx != NULL) gtk_widget_set_sensitive (my_audio_widgets.channels, TRUE); else gtk_widget_set_sensitive (my_audio_widgets.channels, FALSE); g_signal_connect (GTK_COMBO_BOX_TEXT(my_audio_widgets.channels), "changed", G_CALLBACK (audio_channels_changed), &my_audio_widgets); /*latency*/ line++; GtkWidget *label_Latency = gtk_label_new(_("Latency:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Latency), 1); gtk_label_set_yalign(GTK_LABEL(label_Latency), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Latency), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_Latency, 0, line, 1, 1); gtk_widget_show (label_Latency); double latency = 0.0; if(audio_ctx != NULL) latency = audio_ctx->latency; if(debug_level > 2) printf("GUVCVIEW: audio latency is set to %f\n", latency); GtkAdjustment *adjustment = gtk_adjustment_new ( latency, 0.001, 0.1, 0.001, 0.01, 0); my_audio_widgets.latency = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_scale_set_digits(GTK_SCALE(my_audio_widgets.latency), 3); gtk_scale_set_value_pos(GTK_SCALE(my_audio_widgets.latency), GTK_POS_RIGHT); gtk_widget_set_halign (my_audio_widgets.latency, GTK_ALIGN_FILL); gtk_widget_set_hexpand (my_audio_widgets.latency, TRUE); gtk_grid_attach(GTK_GRID(audio_controls_grid), my_audio_widgets.latency, 1, line, 1, 1); gtk_widget_show (my_audio_widgets.latency); if(audio_ctx != NULL) gtk_widget_set_sensitive (my_audio_widgets.latency, TRUE); else gtk_widget_set_sensitive (my_audio_widgets.latency, FALSE); g_signal_connect (GTK_SCALE(my_audio_widgets.latency), "value-changed", G_CALLBACK (audio_latency_changed), &my_audio_widgets); /* ----- Filter controls -----*/ line++; GtkWidget *label_audioFilters = gtk_label_new(_("---- Audio Filters ----")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_audioFilters), 0.5); gtk_label_set_yalign(GTK_LABEL(label_audioFilters), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_audioFilters), 0.5, 0.5); #endif gtk_grid_attach (GTK_GRID(audio_controls_grid), label_audioFilters, 0, line, 3, 1); gtk_widget_show (label_audioFilters); /*filters grid*/ line++; GtkWidget *table_filt = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (table_filt), 4); gtk_grid_set_column_spacing (GTK_GRID (table_filt), 4); gtk_container_set_border_width (GTK_CONTAINER (table_filt), 4); gtk_widget_set_size_request (table_filt, -1, -1); gtk_widget_set_halign (table_filt, GTK_ALIGN_FILL); gtk_widget_set_hexpand (table_filt, TRUE); gtk_grid_attach (GTK_GRID(audio_controls_grid), table_filt, 0, line, 3, 1); gtk_widget_show (table_filt); /* Echo FX */ GtkWidget *FiltEchoEnable = gtk_check_button_new_with_label (_(" Echo")); g_object_set_data (G_OBJECT (FiltEchoEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_ECHO)); gtk_widget_set_halign (FiltEchoEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltEchoEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltEchoEnable, 0, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltEchoEnable), (get_audio_fx_mask() & AUDIO_FX_ECHO) > 0); gtk_widget_show (FiltEchoEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltEchoEnable), "toggled", G_CALLBACK (audio_fx_filter_changed), NULL); /* Reverb FX */ GtkWidget *FiltReverbEnable = gtk_check_button_new_with_label (_(" Reverb")); g_object_set_data (G_OBJECT (FiltReverbEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_REVERB)); gtk_widget_set_halign (FiltReverbEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltReverbEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltReverbEnable, 1, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltReverbEnable), (get_audio_fx_mask() & AUDIO_FX_REVERB) > 0); gtk_widget_show (FiltReverbEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltReverbEnable), "toggled", G_CALLBACK (audio_fx_filter_changed), NULL); /* Fuzz FX */ GtkWidget *FiltFuzzEnable = gtk_check_button_new_with_label (_(" Fuzz")); g_object_set_data (G_OBJECT (FiltFuzzEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_FUZZ)); gtk_widget_set_halign (FiltFuzzEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltFuzzEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltFuzzEnable, 2, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltFuzzEnable), (get_audio_fx_mask() & AUDIO_FX_FUZZ) > 0); gtk_widget_show (FiltFuzzEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltFuzzEnable), "toggled", G_CALLBACK (audio_fx_filter_changed), NULL); /* WahWah FX */ GtkWidget *FiltWahEnable = gtk_check_button_new_with_label (_(" WahWah")); g_object_set_data (G_OBJECT (FiltWahEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_WAHWAH)); gtk_widget_set_halign (FiltWahEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltWahEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltWahEnable, 3, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltWahEnable), (get_audio_fx_mask() & AUDIO_FX_WAHWAH) > 0); gtk_widget_show (FiltWahEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltWahEnable), "toggled", G_CALLBACK (audio_fx_filter_changed), NULL); /* Ducky FX */ GtkWidget *FiltDuckyEnable = gtk_check_button_new_with_label (_(" Ducky")); g_object_set_data (G_OBJECT (FiltDuckyEnable), "filt_info", GINT_TO_POINTER(AUDIO_FX_DUCKY)); gtk_widget_set_halign (FiltDuckyEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltDuckyEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltDuckyEnable, 4, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltDuckyEnable), (get_audio_fx_mask() & AUDIO_FX_DUCKY) > 0); gtk_widget_show (FiltDuckyEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltDuckyEnable), "toggled", G_CALLBACK (audio_fx_filter_changed), NULL); /*add control grid to parent container*/ gtk_container_add(GTK_CONTAINER(parent), audio_controls_grid); return 0; } guvcview-2.0.2+debian/guvcview/gui_gtk3_callbacks.c000066400000000000000000002075331256377215300223330ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include "gviewv4l2core.h" #include "video_capture.h" #include "gviewencoder.h" #include "gviewrender.h" #include "gui.h" #include "gui_gtk3.h" #include "core_io.h" #include "config.h" extern int debug_level; /* * delete event (close window) * args: * widget - pointer to event widget * event - pointer to event data * data - pointer to user data * * asserts: * none * * returns: error code */ int delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data) { /* Terminate program */ quit_callback(NULL); return 0; } /* * quit button clicked event * args: * widget - pointer to widget that caused the event * data - pointer to user data * * asserts: * none * * returns: none */ void quit_button_clicked(GtkWidget *widget, void *data) { /* Terminate program */ quit_callback(NULL); } /* * camera_button_menu toggled event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void camera_button_menu_changed (GtkWidget *item, void *data) { int flag = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "camera_default")); if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) set_default_camera_button_action(flag); } /* * control default clicked event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void control_defaults_clicked (GtkWidget *item, void *data) { v4l2core_set_control_defaults(); gui_gtk3_update_controls_state(); } /* * called from profile format combo in file dialog * args: * chooser - format combo that caused the event * file_dialog - chooser parent * * asserts: * none * * returns: none */ static void profile_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) { int format = gtk_combo_box_get_active (chooser); GtkFileFilter *filter = gtk_file_filter_new(); switch(format) { case 1: gtk_file_filter_add_pattern(filter, "*.*"); break; default: case 0: gtk_file_filter_add_pattern(filter, "*.gpfl"); break; } gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); } /* * control profile (load/save) clicked event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void controls_profile_clicked (GtkWidget *item, void *data) { GtkWidget *FileDialog; int save_or_load = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (item), "profile_dialog")); if(debug_level > 0) printf("GUVCVIEW: Profile dialog (%d)\n", save_or_load); GtkWidget *main_window = get_main_window_gtk3(); if (save_or_load > 0) /*save*/ { FileDialog = gtk_file_chooser_dialog_new (_("Save Profile"), GTK_WINDOW(main_window), GTK_FILE_CHOOSER_ACTION_SAVE, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), get_profile_name()); } else /*load*/ { FileDialog = gtk_file_chooser_dialog_new (_("Load Profile"), GTK_WINDOW(main_window), GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); } /** create a file filter */ GtkFileFilter *filter = gtk_file_filter_new(); GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); GtkWidget *format_label = gtk_label_new(_("File Format:")); gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FBox, TRUE); gtk_widget_set_hexpand (format_label, FALSE); gtk_widget_show(FBox); gtk_widget_show(format_label); gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); GtkWidget *FileFormat = gtk_combo_box_text_new (); gtk_widget_set_halign (FileFormat, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FileFormat, TRUE); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(FileFormat),_("gpfl (*.gpfl)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(FileFormat),_("any (*.*)")); gtk_combo_box_set_active(GTK_COMBO_BOX(FileFormat), 0); gtk_box_pack_start(GTK_BOX(FBox), FileFormat, FALSE, FALSE, 2); gtk_widget_show(FileFormat); gtk_file_filter_add_pattern(filter, "*.gpfl"); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); g_signal_connect (GTK_COMBO_BOX(FileFormat), "changed", G_CALLBACK (profile_update_extension), FileDialog); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), get_profile_path()); if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) { /*Save Controls Data*/ const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); if(save_or_load > 0) { v4l2core_save_control_profile(filename); } else { v4l2core_load_control_profile(filename); gui_gtk3_update_controls_state(); } char *basename = get_file_basename(filename); if(basename) { set_profile_name(basename); free(basename); } char *pathname = get_file_pathname(filename); if(pathname) { set_profile_path(pathname); free(pathname); } } gtk_widget_destroy (FileDialog); } /* * photo suffix toggled event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void photo_sufix_toggled (GtkWidget *item, void *data) { int flag = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)) ? 1 : 0; set_photo_sufix_flag(flag); /*update config*/ config_t *my_config = config_get(); my_config->photo_sufix = flag; } /* * video suffix toggled event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_sufix_toggled (GtkWidget *item, void *data) { int flag = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)) ? 1 : 0; set_video_sufix_flag(flag); /*update config*/ config_t *my_config = config_get(); my_config->video_sufix = flag; } /* * video codec changed event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_codec_changed (GtkRadioMenuItem *item, void *data) { GSList *vgroup = (GSList *) data; if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) { /* * GSList indexes (g_slist_index) are in reverse order: * last inserted has index 0 * so count backwards */ int num_codecs = g_slist_length(vgroup); int index = g_slist_index (vgroup, item); index = num_codecs - (index + 1); //reverse order and 0 indexed fprintf(stderr,"GUVCVIEW: video codec changed to %i\n", index); set_video_codec_ind(index); if( get_video_muxer() == ENCODER_MUX_WEBM && !encoder_check_webm_video_codec(index)) { /*change from webm to matroska*/ set_video_muxer(ENCODER_MUX_MKV); char *newname = set_file_extension(get_video_name(), "mkv"); set_video_name(newname); free(newname); } } } /* * audio codec changed event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_codec_changed (GtkRadioMenuItem *item, void *data) { GSList *agroup = (GSList *) data; if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item))) { /* * GSList indexes (g_slist_index) are in reverse order: * last inserted has index 0 * so count backwards */ int num_codecs = g_slist_length(agroup); int index = g_slist_index (agroup, item); index = num_codecs - (index + 1); //reverse order and 0 indexed fprintf(stderr,"GUVCVIEW: audio codec changed to %i\n", index); set_audio_codec_ind(index); if( get_video_muxer() == ENCODER_MUX_WEBM && !encoder_check_webm_audio_codec(index)) { /*change from webm to matroska*/ set_video_muxer(ENCODER_MUX_MKV); char *newname = set_file_extension(get_video_name(), "mkv"); set_video_name(newname); free(newname); } } } /* * called from photo format combo in file dialog * args: * chooser - format combo that caused the event * file_dialog - chooser parent * * asserts: * none * * returns: none */ static void photo_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) { int format = gtk_combo_box_get_active (chooser); set_photo_format(format); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_dialog)); char *basename = get_file_basename(filename); GtkFileFilter *filter = gtk_file_filter_new(); switch(format) { case IMG_FMT_RAW: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "raw")); gtk_file_filter_add_pattern(filter, "*.raw"); break; case IMG_FMT_PNG: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "png")); gtk_file_filter_add_pattern(filter, "*.png"); break; case IMG_FMT_BMP: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "bmp")); gtk_file_filter_add_pattern(filter, "*.bmp"); break; default: case IMG_FMT_JPG: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "jpg")); gtk_file_filter_add_pattern(filter, "*.jpg"); break; } gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); if(filename) free(filename); if(basename) free(basename); } /* * called from video muxer format combo in file dialog * args: * chooser - format combo that caused the event * file_dialog - chooser parent * * asserts: * none * * returns: none */ static void video_update_extension (GtkComboBox *chooser, GtkWidget *file_dialog) { int format = gtk_combo_box_get_active (chooser); set_video_muxer(format); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_dialog)); char *basename = get_file_basename(filename); GtkFileFilter *filter = gtk_file_filter_new(); switch(format) { case ENCODER_MUX_WEBM: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "webm")); gtk_file_filter_add_pattern(filter, "*.webm"); break; case ENCODER_MUX_AVI: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "avi")); gtk_file_filter_add_pattern(filter, "*.avi"); break; default: case ENCODER_MUX_MKV: gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_dialog), set_file_extension(basename, "mkv")); gtk_file_filter_add_pattern(filter, "*.mkv"); break; } gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (file_dialog), filter); if(filename) free(filename); if(basename) free(basename); } /* * photo file clicked event * args: * item - pointer to widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void photo_file_clicked (GtkWidget *item, void *data) { GtkWidget *FileDialog; GtkWidget *main_window = get_main_window_gtk3(); FileDialog = gtk_file_chooser_dialog_new (_("Photo file name"), GTK_WINDOW(main_window), GTK_FILE_CHOOSER_ACTION_SAVE, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); /** create a file filter */ GtkFileFilter *filter = gtk_file_filter_new(); GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); GtkWidget *format_label = gtk_label_new(_("File Format:")); gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FBox, TRUE); gtk_widget_set_hexpand (format_label, FALSE); gtk_widget_show(FBox); gtk_widget_show(format_label); gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); GtkWidget *ImgFormat = gtk_combo_box_text_new (); gtk_widget_set_halign (ImgFormat, GTK_ALIGN_FILL); gtk_widget_set_hexpand (ImgFormat, TRUE); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Raw (*.raw)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Jpeg (*.jpg)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Png (*.png)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ImgFormat),_("Bmp (*.bmp)")); gtk_combo_box_set_active(GTK_COMBO_BOX(ImgFormat), get_photo_format()); gtk_box_pack_start(GTK_BOX(FBox), ImgFormat, FALSE, FALSE, 2); gtk_widget_show(ImgFormat); /**add a pattern to the filter*/ switch(get_photo_format()) { case IMG_FMT_RAW: gtk_file_filter_add_pattern(filter, "*.raw"); break; case IMG_FMT_PNG: gtk_file_filter_add_pattern(filter, "*.png"); break; case IMG_FMT_BMP: gtk_file_filter_add_pattern(filter, "*.bmp"); break; default: case IMG_FMT_JPG: gtk_file_filter_add_pattern(filter, "*.jpg"); break; } gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); g_signal_connect (GTK_COMBO_BOX(ImgFormat), "changed", G_CALLBACK (photo_update_extension), FileDialog); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), get_photo_name()); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), get_photo_path()); if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) { const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); char *basename = get_file_basename(filename); if(basename) { set_photo_name(basename); free(basename); } char *pathname = get_file_pathname(filename); if(pathname) { set_photo_path(pathname); free(pathname); } } gtk_widget_destroy (FileDialog); } /* * video file clicked event * args: * item - pointer to widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_file_clicked (GtkWidget *item, void *data) { GtkWidget *FileDialog; GtkWidget *main_window = get_main_window_gtk3(); FileDialog = gtk_file_chooser_dialog_new (_("Video file name"), GTK_WINDOW(main_window), GTK_FILE_CHOOSER_ACTION_SAVE, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileDialog), TRUE); /** create a file filter */ GtkFileFilter *filter = gtk_file_filter_new(); GtkWidget *FBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); GtkWidget *format_label = gtk_label_new(_("File Format:")); gtk_widget_set_halign (FBox, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FBox, TRUE); gtk_widget_set_hexpand (format_label, FALSE); gtk_widget_show(FBox); gtk_widget_show(format_label); gtk_box_pack_start(GTK_BOX(FBox), format_label, FALSE, FALSE, 2); GtkWidget *VideoFormat = gtk_combo_box_text_new (); gtk_widget_set_halign (VideoFormat, GTK_ALIGN_FILL); gtk_widget_set_hexpand (VideoFormat, TRUE); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("Matroska (*.mkv)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("WebM (*.webm)")); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(VideoFormat),_("Avi (*.avi)")); gtk_combo_box_set_active(GTK_COMBO_BOX(VideoFormat), get_video_muxer()); gtk_box_pack_start(GTK_BOX(FBox), VideoFormat, FALSE, FALSE, 2); gtk_widget_show(VideoFormat); /**add a pattern to the filter*/ switch(get_video_muxer()) { case ENCODER_MUX_WEBM: gtk_file_filter_add_pattern(filter, "*.webm"); break; case ENCODER_MUX_AVI: gtk_file_filter_add_pattern(filter, "*.avi"); break; default: case ENCODER_MUX_MKV: gtk_file_filter_add_pattern(filter, "*.mkv"); break; } gtk_file_chooser_set_filter(GTK_FILE_CHOOSER (FileDialog), filter); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER (FileDialog), FBox); g_signal_connect (GTK_COMBO_BOX(VideoFormat), "changed", G_CALLBACK (video_update_extension), FileDialog); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (FileDialog), get_video_name()); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (FileDialog), get_video_path()); if (gtk_dialog_run (GTK_DIALOG (FileDialog)) == GTK_RESPONSE_ACCEPT) { const char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (FileDialog)); char *basename = get_file_basename(filename); if(basename) { set_video_name(basename); free(basename); } char *pathname = get_file_pathname(filename); if(pathname) { set_video_path(pathname); free(pathname); } } gtk_widget_destroy (FileDialog); } /* * capture image button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void capture_image_clicked (GtkButton *button, void *data) { int is_photo_timer = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (button), "control_info")); if(is_photo_timer) { stop_photo_timer(); gtk_button_set_label(button, _("Cap. Image (I)")); } else video_capture_save_image(); } /* * capture video button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void capture_video_clicked(GtkToggleButton *button, void *data) { int active = gtk_toggle_button_get_active (button); if(debug_level > 0) printf("GUVCVIEW: video capture toggled(%i)\n", active); if(active) { start_encoder_thread(); gtk_button_set_label(GTK_BUTTON(button), _("Stop Video (V)")); } else { stop_encoder_thread(); gtk_button_set_label(GTK_BUTTON(button), _("Cap. Video (V)")); /*make sure video timer is reset*/ reset_video_timer(); } } /* * pan/tilt step changed * args: * spin - spinbutton that generated the event * data - pointer to user data * * asserts: * none * * returns: * none */ void pan_tilt_step_changed (GtkSpinButton *spin, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (spin), "control_info")); int val = gtk_spin_button_get_value_as_int (spin); if(id == V4L2_CID_PAN_RELATIVE) v4l2core_set_pan_step(val); if(id == V4L2_CID_TILT_RELATIVE) v4l2core_set_tilt_step(val); } /* * Pan Tilt button 1 clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_PanTilt1_clicked (GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(id == V4L2_CID_PAN_RELATIVE) control->value = v4l2core_get_pan_step(); else control->value = v4l2core_get_tilt_step(); if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt\n"); } /* * Pan Tilt button 2 clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_PanTilt2_clicked (GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(id == V4L2_CID_PAN_RELATIVE) control->value = - v4l2core_get_pan_step(); else control->value = - v4l2core_get_tilt_step(); if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt\n"); } /* * generic button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_clicked (GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); control->value = 1; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting button value\n"); gui_gtk3_update_controls_state(); } #ifdef V4L2_CTRL_TYPE_STRING /* * a string control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * control->string not null * * returns: none */ void string_button_clicked(GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); assert(control->string != NULL); strncpy(control->string, gtk_entry_get_text(GTK_ENTRY(entry)), control->control.maximum); if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting string value\n"); } #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 /* * a int64 control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void int64_button_clicked(GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); char* text_input = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); text_input = g_strstrip(text_input); if( g_str_has_prefix(text_input, "0x")) //hex format { text_input = g_strcanon(text_input, "0123456789ABCDEFabcdef", '\0'); control->value64 = g_ascii_strtoll(text_input, NULL, 16); } else //decimal or hex ? { text_input = g_strcanon(text_input, "0123456789ABCDEFabcdef", '\0'); control->value64 = g_ascii_strtoll(text_input, NULL, 0); } g_free(text_input); if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting string value\n"); } #endif #ifdef V4L2_CTRL_TYPE_BITMASK /* * a bitmask control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void bitmask_button_clicked(GtkButton * Button, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (Button), "control_info")); GtkWidget *entry = (GtkWidget *) g_object_get_data (G_OBJECT (Button), "control_entry"); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); char* text_input = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); text_input = g_strcanon(text_input,"0123456789ABCDEFabcdef", '\0'); control->value = (int32_t) g_ascii_strtoll(text_input, NULL, 16); g_free(text_input); if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting string value\n"); } #endif /* * slider changed event * args: * range - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void slider_changed (GtkRange * range, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (range), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); int val = (int) gtk_range_get_value (range); control->value = val; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting slider value\n"); /* if(widget2) { //disable widget signals g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(widget2), G_CALLBACK (spin_changed), data); gtk_spin_button_set_value (GTK_SPIN_BUTTON(widget2), control->value); //enable widget signals g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(widget2), G_CALLBACK (spin_changed), data); } */ } /* * spin changed event * args: * spin - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void spin_changed (GtkSpinButton * spin, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (spin), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); int val = gtk_spin_button_get_value_as_int (spin); control->value = val; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting spin value\n"); /* if(widget) { //disable widget signals g_signal_handlers_block_by_func(GTK_SCALE (widget), G_CALLBACK (slider_changed), data); gtk_range_set_value (GTK_RANGE (widget), control->value); //enable widget signals g_signal_handlers_unblock_by_func(GTK_SCALE (widget), G_CALLBACK (slider_changed), data); } */ } /* * combo box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void combo_changed (GtkComboBox * combo, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (combo), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); int index = gtk_combo_box_get_active (combo); control->value = control->menu[index].index; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting menu value\n"); gui_gtk3_update_controls_state(); } /* * bayer pixel order combo box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void bayer_pix_ord_changed (GtkComboBox * combo, void *data) { //int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (combo), "control_info")); int index = gtk_combo_box_get_active (combo); v4l2core_set_bayer_pix_order(index); } /* * check box changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void check_changed (GtkToggleButton *toggle, void *data) { int id = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "control_info")); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; control->value = val; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting menu value\n"); if(id == V4L2_CID_DISABLE_PROCESSING_LOGITECH) { if (control->value > 0) v4l2core_set_isbayer(1); else v4l2core_set_isbayer(0); /* * must restart stream and requeue * the buffers for changes to take effect * (updating fps provides all that is needed) */ v4l2core_request_framerate_update (); } gui_gtk3_update_controls_state(); } /* * device list box changed event * args: * wgtDevices - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void devices_changed (GtkComboBox *wgtDevices, void *data) { GError *error = NULL; int index = gtk_combo_box_get_active(wgtDevices); if(index == v4l2core_get_this_device_index()) return; v4l2_device_list *device_list = v4l2core_get_device_list(); GtkWidget *restartdialog = gtk_dialog_new_with_buttons (_("start new"), GTK_WINDOW(get_main_window_gtk3()), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("restart"), GTK_RESPONSE_ACCEPT, _("new"), GTK_RESPONSE_REJECT, _("cancel"), GTK_RESPONSE_CANCEL, NULL); GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (restartdialog)); GtkWidget *message = gtk_label_new (_("launch new process or restart?.\n\n")); gtk_container_add (GTK_CONTAINER (content_area), message); gtk_widget_show_all(restartdialog); gint result = gtk_dialog_run (GTK_DIALOG (restartdialog)); /*check device index only after dialog response*/ char videodevice[30]; strncpy(videodevice, device_list->list_devices[index].device, 29); gchar *command = g_strjoin("", g_get_prgname(), " --device=", videodevice, NULL); switch (result) { case GTK_RESPONSE_ACCEPT: /*FIXME: restart or reset device without closing the app*/ if(debug_level > 1) printf("GUVCVIEW: spawning new process: '%s'\n", command); /*spawn new process*/ if(!(g_spawn_command_line_async(command, &error))) { fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); g_error_free( error ); } else quit_callback(NULL); break; case GTK_RESPONSE_REJECT: if(debug_level > 1) printf("GUVCVIEW: spawning new process: '%s'\n", command); /*spawn new process*/ if(!(g_spawn_command_line_async(command, &error))) { fprintf(stderr, "GUVCVIEW: spawn failed: %s\n", error->message); g_error_free( error ); } break; default: /* do nothing since dialog was canceled*/ break; } /*reset to current device*/ gtk_combo_box_set_active(GTK_COMBO_BOX(wgtDevices), v4l2core_get_this_device_index()); gtk_widget_destroy (restartdialog); g_free(command); } /* * frame rate list box changed event * args: * wgtFrameRate - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void frame_rate_changed (GtkComboBox *wgtFrameRate, void *data) { int format_index = v4l2core_get_frame_format_index(v4l2core_get_requested_frame_format()); int resolu_index = v4l2core_get_format_resolution_index( format_index, v4l2core_get_frame_width(), v4l2core_get_frame_height()); int index = gtk_combo_box_get_active (wgtFrameRate); v4l2_stream_formats_t *list_stream_formats = v4l2core_get_formats_list(); int fps_denom = list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[index]; int fps_num = list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[index]; v4l2core_define_fps(fps_num, fps_denom); int fps[2] = {fps_num, fps_denom}; gui_set_fps(fps); v4l2core_request_framerate_update (); } /* * resolution list box changed event * args: * wgtResolution - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void resolution_changed (GtkComboBox *wgtResolution, void *data) { int format_index = v4l2core_get_frame_format_index(v4l2core_get_requested_frame_format()); int cmb_index = gtk_combo_box_get_active(wgtResolution); GtkWidget *wgtFrameRate = (GtkWidget *) g_object_get_data (G_OBJECT (wgtResolution), "control_fps"); char temp_str[20]; /*disable fps combobox signals*/ g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(wgtFrameRate), G_CALLBACK (frame_rate_changed), NULL); /* clear out the old fps list... */ GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(wgtFrameRate))); gtk_list_store_clear(store); v4l2_stream_formats_t *list_stream_formats = v4l2core_get_formats_list(); int width = list_stream_formats[format_index].list_stream_cap[cmb_index].width; int height = list_stream_formats[format_index].list_stream_cap[cmb_index].height; /*check if frame rate is available at the new resolution*/ int i=0; int deffps=0; for ( i = 0 ; i < list_stream_formats[format_index].list_stream_cap[cmb_index].numb_frates ; i++) { g_snprintf( temp_str, 18, "%i/%i fps", list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[i], list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[i]); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtFrameRate), temp_str); if (( v4l2core_get_fps_num() == list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[i]) && ( v4l2core_get_fps_denom() == list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[i])) deffps=i; } /*set default fps in combo*/ gtk_combo_box_set_active(GTK_COMBO_BOX(wgtFrameRate), deffps); /*enable fps combobox signals*/ g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(wgtFrameRate), G_CALLBACK (frame_rate_changed), NULL); if (list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num) v4l2core_define_fps(list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_num[deffps], -1); if (list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom) v4l2core_define_fps(-1, list_stream_formats[format_index].list_stream_cap[cmb_index].framerate_denom[deffps]); /*change resolution (try new format and reset render)*/ v4l2core_prepare_new_resolution(width, height); request_format_update(); /*update the config data*/ config_t *my_config = config_get(); my_config->width = width; my_config->height= height; } /* * device pixel format list box changed event * args: * wgtInpType - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void format_changed(GtkComboBox *wgtInpType, void *data) { char temp_str[20]; int index = gtk_combo_box_get_active(wgtInpType); //GtkWidget *wgtFrameRate = (GtkWidget *) g_object_get_data (G_OBJECT (wgtInpType), "control_fps"); GtkWidget *wgtResolution = (GtkWidget *) g_object_get_data (G_OBJECT (wgtInpType), "control_resolution"); int i=0; int defres = 0; /*disable resolution combobox signals*/ g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(wgtResolution), G_CALLBACK (resolution_changed), NULL); /* clear out the old resolution list... */ GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(wgtResolution))); gtk_list_store_clear(store); v4l2_stream_formats_t *list_stream_formats = v4l2core_get_formats_list(); int format = list_stream_formats[index].format; /*update config*/ config_t *my_config = config_get(); strncpy(my_config->format, list_stream_formats[index].fourcc, 4); /*redraw resolution combo for new format*/ for(i = 0 ; i < list_stream_formats[index].numb_res ; i++) { if (list_stream_formats[index].list_stream_cap[i].width > 0) { g_snprintf( temp_str, 18, "%ix%i", list_stream_formats[index].list_stream_cap[i].width, list_stream_formats[index].list_stream_cap[i].height); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtResolution), temp_str); if ((v4l2core_get_frame_width() == list_stream_formats[index].list_stream_cap[i].width) && (v4l2core_get_frame_height() == list_stream_formats[index].list_stream_cap[i].height)) defres=i;//set selected resolution index } } /*enable resolution combobox signals*/ g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(wgtResolution), G_CALLBACK (resolution_changed), NULL); /*prepare new format*/ v4l2core_prepare_new_format(format); /*change resolution*/ gtk_combo_box_set_active(GTK_COMBO_BOX(wgtResolution), defres); } /* * render fx filter changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void render_fx_filter_changed(GtkToggleButton *toggle, void *data) { int filter = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "filt_info")); uint32_t mask = gtk_toggle_button_get_active (toggle) ? get_render_fx_mask() | filter : get_render_fx_mask() & ~filter; set_render_fx_mask(mask); } /* * audio fx filter changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_fx_filter_changed(GtkToggleButton *toggle, void *data) { int filter = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "filt_info")); uint32_t mask = gtk_toggle_button_get_active (toggle) ? get_audio_fx_mask() | filter : get_audio_fx_mask() & ~filter; set_audio_fx_mask(mask); } /* * render osd changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void render_osd_changed(GtkToggleButton *toggle, void *data) { int osd = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (toggle), "osd_info")); uint32_t mask = gtk_toggle_button_get_active (toggle) ? render_get_osd_mask() | osd : render_get_osd_mask() & ~osd; render_set_osd_mask(mask); /* update config */ config_t *my_config = config_get(); my_config->osd_mask = render_get_osd_mask(); /*make sure to disable VU meter OSD in config - it's set by audio capture*/ my_config->osd_mask &= ~REND_OSD_VUMETER_MONO; my_config->osd_mask &= ~REND_OSD_VUMETER_STEREO; } /* * software autofocus checkbox changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void autofocus_changed (GtkToggleButton * toggle, void *data) { int val = gtk_toggle_button_get_active (toggle) ? 1 : 0; GtkWidget *wgtFocus_slider = (GtkWidget *) g_object_get_data (G_OBJECT (toggle), "control_entry"); GtkWidget *wgtFocus_spin = (GtkWidget *) g_object_get_data (G_OBJECT (toggle), "control2_entry"); /*if autofocus disable manual focus control*/ gtk_widget_set_sensitive (wgtFocus_slider, !val); gtk_widget_set_sensitive (wgtFocus_spin, !val); set_soft_autofocus(val); } /* * software autofocus button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void setfocus_clicked (GtkButton * button, void *data) { set_soft_focus(1); } /******************* AUDIO CALLBACKS *************************/ /* * audio device list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_device_changed(GtkComboBox *combo, void *data) { audio_widgets_t *my_audio_widgets = (audio_widgets_t *) data; int index = gtk_combo_box_get_active(combo); /*update the audio context for the new api*/ audio_context_t *audio_ctx = get_audio_context(); if(index < 0) index = 0; else if (index >= audio_ctx->num_input_dev) index = audio_ctx->num_input_dev - 1; /*update config*/ config_t *my_config = config_get(); my_config->audio_device = index; /*set the audio device defaults*/ audio_set_device(audio_ctx, my_config->audio_device); if(debug_level > 0) printf("GUVCVIEW: audio device changed to %i\n", audio_ctx->device); index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->channels)); if(index == 0) { audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; if(audio_ctx->channels > 2) audio_ctx->channels = 2;/*limit it to stereo input*/ } index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->samprate)); if(index == 0) audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; gtk_range_set_value(GTK_RANGE(my_audio_widgets->latency), audio_ctx->latency); } /* * audio samplerate list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_samplerate_changed(GtkComboBox *combo, void *data) { int index = gtk_combo_box_get_active(combo); /*update the audio context for the new api*/ audio_context_t *audio_ctx = get_audio_context(); switch(index) { case 0: audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; break; case 1: audio_ctx->samprate = 7350; break; case 2: audio_ctx->samprate = 8000; break; case 3: audio_ctx->samprate = 11025; break; case 4: audio_ctx->samprate = 12000; break; case 5: audio_ctx->samprate = 16000; break; case 6: audio_ctx->samprate = 22050; break; case 7: audio_ctx->samprate = 24000; break; case 8: audio_ctx->samprate = 32000; break; case 9: audio_ctx->samprate = 44100; break; case 10: audio_ctx->samprate = 48000; break; case 11: audio_ctx->samprate = 64000; break; case 12: audio_ctx->samprate = 88200; break; case 13: audio_ctx->samprate = 96000; break; default: audio_ctx->samprate = 44100; break; } } /* * audio channels list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_channels_changed(GtkComboBox *combo, void *data) { int index = gtk_combo_box_get_active(combo); /*update the audio context for the new api*/ audio_context_t *audio_ctx = get_audio_context(); int channels = 0; switch(index) { case 0: channels = audio_ctx->list_devices[audio_ctx->device].channels; break; case 1: channels = 1; break; default: case 2: channels = 2; break; } if(channels > audio_ctx->list_devices[audio_ctx->device].channels) audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; if(audio_ctx->channels > 2) audio_ctx->channels = 2; /*limit to stereo*/ } /* * audio api list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_api_changed(GtkComboBox *combo, void *data) { audio_widgets_t *my_audio_widgets = (audio_widgets_t *) data; int api = gtk_combo_box_get_active(combo); /*update the audio context for the new api*/ audio_context_t *audio_ctx = create_audio_context(api, -1); if(!audio_ctx) api = AUDIO_NONE; /*update the config audio entry*/ config_t *my_config = config_get(); switch(api) { case AUDIO_NONE: strncpy(my_config->audio, "none", 5); break; case AUDIO_PULSE: strncpy(my_config->audio, "pulse", 5); break; default: strncpy(my_config->audio, "port", 5); break; } if(api == AUDIO_NONE || audio_ctx == NULL) { gtk_combo_box_set_active(combo, api); gtk_widget_set_sensitive(my_audio_widgets->device, FALSE); gtk_widget_set_sensitive(my_audio_widgets->channels, FALSE); gtk_widget_set_sensitive(my_audio_widgets->samprate, FALSE); gtk_widget_set_sensitive(my_audio_widgets->latency, FALSE); } else { g_signal_handlers_block_by_func( GTK_COMBO_BOX_TEXT(my_audio_widgets->device), G_CALLBACK (audio_device_changed), my_audio_widgets); /* clear out the old device list... */ GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(my_audio_widgets->device))); gtk_list_store_clear(store); int i = 0; for(i = 0; i < audio_ctx->num_input_dev; ++i) { gtk_combo_box_text_append_text( GTK_COMBO_BOX_TEXT(my_audio_widgets->device), audio_ctx->list_devices[i].description); } gtk_combo_box_set_active(GTK_COMBO_BOX(my_audio_widgets->device), audio_ctx->device); g_signal_handlers_unblock_by_func( GTK_COMBO_BOX_TEXT(my_audio_widgets->device), G_CALLBACK (audio_device_changed), my_audio_widgets); gtk_widget_set_sensitive (my_audio_widgets->device, TRUE); gtk_widget_set_sensitive(my_audio_widgets->channels, TRUE); gtk_widget_set_sensitive(my_audio_widgets->samprate, TRUE); gtk_widget_set_sensitive(my_audio_widgets->latency, TRUE); /*update channels*/ int index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->channels)); if(index == 0) /*auto*/ audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; /*update samprate*/ index = gtk_combo_box_get_active(GTK_COMBO_BOX(my_audio_widgets->samprate)); if(index == 0) /*auto*/ audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; gtk_range_set_value(GTK_RANGE(my_audio_widgets->latency), audio_ctx->latency); } } /* * audio latency changed event * args: * range - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_latency_changed(GtkRange *range, void *data) { /**update the audio context for the new api*/ audio_context_t *audio_ctx = get_audio_context(); if(audio_ctx != NULL) audio_ctx->latency = (double) gtk_range_get_value (range); } /* * video encoder properties clicked event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void encoder_video_properties(GtkMenuItem *item, void *data) { int line = 0; video_codec_t *defaults = encoder_get_video_codec_defaults(get_video_codec_ind()); GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("video codec values"), GTK_WINDOW(get_main_window_gtk3()), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_OK"), GTK_RESPONSE_ACCEPT, _("_Cancel"), GTK_RESPONSE_REJECT, NULL); GtkWidget *table = gtk_grid_new(); GtkWidget *lbl_fps = gtk_label_new(_(" encoder fps: \n (0 - use fps combobox value)")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_fps), 1); gtk_label_set_yalign(GTK_LABEL(lbl_fps), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_fps), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_fps, 0, line, 1, 1); gtk_widget_show (lbl_fps); GtkWidget *enc_fps = gtk_spin_button_new_with_range(0,30,5); gtk_editable_set_editable(GTK_EDITABLE(enc_fps),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(enc_fps), defaults->fps); gtk_grid_attach (GTK_GRID(table), enc_fps, 1, line, 1, 1); gtk_widget_show (enc_fps); line++; GtkWidget *monotonic_pts = gtk_check_button_new_with_label (_(" monotonic pts")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(monotonic_pts),(defaults->monotonic_pts != 0)); gtk_grid_attach (GTK_GRID(table), monotonic_pts, 1, line, 1, 1); gtk_widget_show (monotonic_pts); line++; GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_bit_rate), 1); gtk_label_set_yalign(GTK_LABEL(lbl_bit_rate), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); gtk_widget_show (lbl_bit_rate); GtkWidget *bit_rate = gtk_spin_button_new_with_range(160000,4000000,10000); gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), defaults->bit_rate); gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); gtk_widget_show (bit_rate); line++; GtkWidget *lbl_qmax = gtk_label_new(_("qmax: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_qmax), 1); gtk_label_set_yalign(GTK_LABEL(lbl_qmax), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_qmax), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_qmax, 0, line, 1 ,1); gtk_widget_show (lbl_qmax); GtkWidget *qmax = gtk_spin_button_new_with_range(1,60,1); gtk_editable_set_editable(GTK_EDITABLE(qmax),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmax), defaults->qmax); gtk_grid_attach (GTK_GRID(table), qmax, 1, line, 1, 1); gtk_widget_show (qmax); line++; GtkWidget *lbl_qmin = gtk_label_new(_("qmin: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_qmin), 1); gtk_label_set_yalign(GTK_LABEL(lbl_qmin), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_qmin), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_qmin, 0, line, 1, 1); gtk_widget_show (lbl_qmin); GtkWidget *qmin = gtk_spin_button_new_with_range(1,31,1); gtk_editable_set_editable(GTK_EDITABLE(qmin),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(qmin), defaults->qmin); gtk_grid_attach (GTK_GRID(table), qmin, 1, line, 1, 1); gtk_widget_show (qmin); line++; GtkWidget *lbl_max_qdiff = gtk_label_new(_("max. qdiff: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_max_qdiff), 1); gtk_label_set_yalign(GTK_LABEL(lbl_max_qdiff), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_max_qdiff), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_max_qdiff, 0, line, 1, 1); gtk_widget_show (lbl_max_qdiff); GtkWidget *max_qdiff = gtk_spin_button_new_with_range(1,4,1); gtk_editable_set_editable(GTK_EDITABLE(max_qdiff),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_qdiff), defaults->max_qdiff); gtk_grid_attach (GTK_GRID(table), max_qdiff, 1, line, 1, 1); gtk_widget_show (max_qdiff); line++; GtkWidget *lbl_dia = gtk_label_new(_("dia size: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_dia), 1); gtk_label_set_yalign(GTK_LABEL(lbl_dia), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_dia), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_dia, 0, line, 1, 1); gtk_widget_show (lbl_dia); GtkWidget *dia = gtk_spin_button_new_with_range(-1,4,1); gtk_editable_set_editable(GTK_EDITABLE(dia),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dia), defaults->dia); gtk_grid_attach (GTK_GRID(table), dia, 1, line, 1, 1); gtk_widget_show (dia); line++; GtkWidget *lbl_pre_dia = gtk_label_new(_("pre dia size: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_pre_dia), 1); gtk_label_set_yalign(GTK_LABEL(lbl_pre_dia), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_pre_dia), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_pre_dia, 0, line, 1, 1); gtk_widget_show (lbl_pre_dia); GtkWidget *pre_dia = gtk_spin_button_new_with_range(1,4,1); gtk_editable_set_editable(GTK_EDITABLE(pre_dia),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_dia), defaults->pre_dia); gtk_grid_attach (GTK_GRID(table), pre_dia, 1, line, 1, 1); gtk_widget_show (pre_dia); line++; GtkWidget *lbl_pre_me = gtk_label_new(_("pre me: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_pre_me), 1); gtk_label_set_yalign(GTK_LABEL(lbl_pre_me), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_pre_me), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_pre_me, 0, line, 1, 1); gtk_widget_show (lbl_pre_me); GtkWidget *pre_me = gtk_spin_button_new_with_range(0,2,1); gtk_editable_set_editable(GTK_EDITABLE(pre_me),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(pre_me), defaults->pre_me); gtk_grid_attach (GTK_GRID(table), pre_me, 1, line, 1, 1); gtk_widget_show (pre_me); line++; GtkWidget *lbl_me_pre_cmp = gtk_label_new(_("pre cmp: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_me_pre_cmp), 1); gtk_label_set_yalign(GTK_LABEL(lbl_me_pre_cmp), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_me_pre_cmp), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_me_pre_cmp, 0, line, 1, 1); gtk_widget_show (lbl_me_pre_cmp); GtkWidget *me_pre_cmp = gtk_spin_button_new_with_range(0,6,1); gtk_editable_set_editable(GTK_EDITABLE(me_pre_cmp),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_pre_cmp), defaults->me_pre_cmp); gtk_grid_attach (GTK_GRID(table), me_pre_cmp, 1, line, 1, 1); gtk_widget_show (me_pre_cmp); line++; GtkWidget *lbl_me_cmp = gtk_label_new(_("cmp: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_me_cmp), 1); gtk_label_set_yalign(GTK_LABEL(lbl_me_cmp), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_me_cmp), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_me_cmp, 0, line, 1, 1); gtk_widget_show (lbl_me_cmp); GtkWidget *me_cmp = gtk_spin_button_new_with_range(0,6,1); gtk_editable_set_editable(GTK_EDITABLE(me_cmp),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_cmp), defaults->me_cmp); gtk_grid_attach (GTK_GRID(table), me_cmp, 1, line, 1, 1); gtk_widget_show (me_cmp); line++; GtkWidget *lbl_me_sub_cmp = gtk_label_new(_("sub cmp: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_me_sub_cmp), 1); gtk_label_set_yalign(GTK_LABEL(lbl_me_sub_cmp), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_me_sub_cmp), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_me_sub_cmp, 0, line, 1, 1); gtk_widget_show (lbl_me_sub_cmp); GtkWidget *me_sub_cmp = gtk_spin_button_new_with_range(0,6,1); gtk_editable_set_editable(GTK_EDITABLE(me_sub_cmp),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_sub_cmp), defaults->me_sub_cmp); gtk_grid_attach (GTK_GRID(table), me_sub_cmp, 1, line, 1, 1); gtk_widget_show (me_sub_cmp); line++; GtkWidget *lbl_last_pred = gtk_label_new(_("last predictor count: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_last_pred), 1); gtk_label_set_yalign(GTK_LABEL(lbl_last_pred), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_last_pred), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_last_pred, 0, line, 1, 1); gtk_widget_show (lbl_last_pred); GtkWidget *last_pred = gtk_spin_button_new_with_range(1,3,1); gtk_editable_set_editable(GTK_EDITABLE(last_pred),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(last_pred), defaults->last_pred); gtk_grid_attach (GTK_GRID(table), last_pred, 1, line, 1, 1); gtk_widget_show (last_pred); line++; GtkWidget *lbl_gop_size = gtk_label_new(_("gop size: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_gop_size), 1); gtk_label_set_yalign(GTK_LABEL(lbl_gop_size), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_gop_size), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_gop_size, 0, line, 1, 1); gtk_widget_show (lbl_gop_size); GtkWidget *gop_size = gtk_spin_button_new_with_range(1,250,1); gtk_editable_set_editable(GTK_EDITABLE(gop_size),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(gop_size), defaults->gop_size); gtk_grid_attach (GTK_GRID(table), gop_size, 1, line, 1, 1); gtk_widget_show (gop_size); line++; GtkWidget *lbl_qcompress = gtk_label_new(_("qcompress: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_qcompress), 1); gtk_label_set_yalign(GTK_LABEL(lbl_qcompress), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_qcompress), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_qcompress, 0, line, 1, 1); gtk_widget_show (lbl_qcompress); GtkWidget *qcompress = gtk_spin_button_new_with_range(0,1,0.1); gtk_editable_set_editable(GTK_EDITABLE(qcompress),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(qcompress), defaults->qcompress); gtk_grid_attach (GTK_GRID(table), qcompress, 1, line, 1 ,1); gtk_widget_show (qcompress); line++; GtkWidget *lbl_qblur = gtk_label_new(_("qblur: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_qblur), 1); gtk_label_set_yalign(GTK_LABEL(lbl_qblur), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_qblur), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_qblur, 0, line, 1 ,1); gtk_widget_show (lbl_qblur); GtkWidget *qblur = gtk_spin_button_new_with_range(0,1,0.1); gtk_editable_set_editable(GTK_EDITABLE(qblur),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(qblur), defaults->qblur); gtk_grid_attach (GTK_GRID(table), qblur, 1, line, 1 ,1); gtk_widget_show (qblur); line++; GtkWidget *lbl_subq = gtk_label_new(_("subq: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_subq), 1); gtk_label_set_yalign(GTK_LABEL(lbl_subq), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_subq), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_subq, 0, line, 1 ,1); gtk_widget_show (lbl_subq); GtkWidget *subq = gtk_spin_button_new_with_range(0,8,1); gtk_editable_set_editable(GTK_EDITABLE(subq),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(subq), defaults->subq); gtk_grid_attach (GTK_GRID(table), subq, 1, line, 1 ,1); gtk_widget_show (subq); line++; GtkWidget *lbl_framerefs = gtk_label_new(_("framerefs: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_framerefs), 1); gtk_label_set_yalign(GTK_LABEL(lbl_framerefs), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_framerefs), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_framerefs, 0, line, 1 ,1); gtk_widget_show (lbl_framerefs); GtkWidget *framerefs = gtk_spin_button_new_with_range(0,12,1); gtk_editable_set_editable(GTK_EDITABLE(framerefs),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(framerefs), defaults->framerefs); gtk_grid_attach (GTK_GRID(table), framerefs, 1, line, 1 ,1); gtk_widget_show (framerefs); line++; GtkWidget *lbl_me_method = gtk_label_new(_("me method: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_me_method), 1); gtk_label_set_yalign(GTK_LABEL(lbl_me_method), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_me_method), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_me_method, 0, line, 1 ,1); gtk_widget_show (lbl_me_method); GtkWidget *me_method = gtk_spin_button_new_with_range(1,10,1); gtk_editable_set_editable(GTK_EDITABLE(me_method),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(me_method), defaults->me_method); gtk_grid_attach (GTK_GRID(table), me_method, 1, line, 1 ,1); gtk_widget_show (me_method); line++; GtkWidget *lbl_mb_decision = gtk_label_new(_("mb decision: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_mb_decision), 1); gtk_label_set_yalign(GTK_LABEL(lbl_mb_decision), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_mb_decision), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_mb_decision, 0, line, 1 ,1); gtk_widget_show (lbl_mb_decision); GtkWidget *mb_decision = gtk_spin_button_new_with_range(0,2,1); gtk_editable_set_editable(GTK_EDITABLE(mb_decision),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(mb_decision), defaults->mb_decision); gtk_grid_attach (GTK_GRID(table), mb_decision, 1, line, 1 ,1); gtk_widget_show (mb_decision); line++; GtkWidget *lbl_max_b_frames = gtk_label_new(_("max B frames: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_max_b_frames), 1); gtk_label_set_yalign(GTK_LABEL(lbl_max_b_frames), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_max_b_frames), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_max_b_frames, 0, line, 1 ,1); gtk_widget_show (lbl_max_b_frames); GtkWidget *max_b_frames = gtk_spin_button_new_with_range(0,4,1); gtk_editable_set_editable(GTK_EDITABLE(max_b_frames),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(max_b_frames), defaults->max_b_frames); gtk_grid_attach (GTK_GRID(table), max_b_frames, 1, line, 1 ,1); gtk_widget_show (max_b_frames); line++; GtkWidget *lbl_num_threads = gtk_label_new(_("num threads: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_num_threads), 1); gtk_label_set_yalign(GTK_LABEL(lbl_num_threads), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_num_threads), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_num_threads, 0, line, 1 ,1); gtk_widget_show (lbl_num_threads); GtkWidget *num_threads = gtk_spin_button_new_with_range(0,8,1); gtk_editable_set_editable(GTK_EDITABLE(num_threads),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(num_threads), defaults->num_threads); gtk_grid_attach (GTK_GRID(table), num_threads, 1, line, 1 ,1); gtk_widget_show (num_threads); line++; GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); gtk_container_add (GTK_CONTAINER (content_area), table); gtk_widget_show (table); gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); switch (result) { case GTK_RESPONSE_ACCEPT: defaults->fps = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(enc_fps)); defaults->monotonic_pts = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(monotonic_pts)); defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); defaults->qmax = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmax)); defaults->qmin = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(qmin)); defaults->max_qdiff = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_qdiff)); defaults->dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(dia)); defaults->pre_dia = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_dia)); defaults->pre_me = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(pre_me)); defaults->me_pre_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_pre_cmp)); defaults->me_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_cmp)); defaults->me_sub_cmp = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_sub_cmp)); defaults->last_pred = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(last_pred)); defaults->gop_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gop_size)); defaults->qcompress = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qcompress)); defaults->qblur = (float) gtk_spin_button_get_value (GTK_SPIN_BUTTON(qblur)); defaults->subq = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(subq)); defaults->framerefs = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(framerefs)); defaults->me_method = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(me_method)); defaults->mb_decision = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(mb_decision)); defaults->max_b_frames = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(max_b_frames)); defaults->num_threads = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(num_threads)); break; default: // do nothing since dialog was cancelled break; } gtk_widget_destroy (codec_dialog); } /* * audio encoder properties clicked event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void encoder_audio_properties(GtkMenuItem *item, void *data) { int line = 0; audio_codec_t *defaults = encoder_get_audio_codec_defaults(get_audio_codec_ind()); GtkWidget *codec_dialog = gtk_dialog_new_with_buttons (_("audio codec values"), GTK_WINDOW(get_main_window_gtk3()), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_Ok"), GTK_RESPONSE_ACCEPT, _("_Cancel"), GTK_RESPONSE_REJECT, NULL); GtkWidget *table = gtk_grid_new(); gtk_grid_set_column_homogeneous (GTK_GRID(table), TRUE); /*bit rate*/ GtkWidget *lbl_bit_rate = gtk_label_new(_("bit rate: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_bit_rate), 1); gtk_label_set_yalign(GTK_LABEL(lbl_bit_rate), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_bit_rate), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_bit_rate, 0, line, 1, 1); gtk_widget_show (lbl_bit_rate); GtkWidget *bit_rate = gtk_spin_button_new_with_range(48000,384000,8000); gtk_editable_set_editable(GTK_EDITABLE(bit_rate),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(bit_rate), defaults->bit_rate); gtk_grid_attach (GTK_GRID(table), bit_rate, 1, line, 1, 1); gtk_widget_show (bit_rate); line++; /*sample format*/ GtkWidget *lbl_sample_fmt = gtk_label_new(_("sample format: ")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(lbl_sample_fmt), 1); gtk_label_set_yalign(GTK_LABEL(lbl_sample_fmt), 0.5); #else gtk_misc_set_alignment (GTK_MISC (lbl_sample_fmt), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(table), lbl_sample_fmt, 0, line, 1, 1); gtk_widget_show (lbl_sample_fmt); GtkWidget *sample_fmt = gtk_spin_button_new_with_range(0, encoder_get_max_audio_sample_fmt(), 1); gtk_editable_set_editable(GTK_EDITABLE(sample_fmt),TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON(sample_fmt), defaults->sample_format); gtk_grid_attach (GTK_GRID(table), sample_fmt, 1, line, 1, 1); gtk_widget_show (sample_fmt); line++; GtkWidget *content_area = gtk_dialog_get_content_area (GTK_DIALOG (codec_dialog)); gtk_container_add (GTK_CONTAINER (content_area), table); gtk_widget_show (table); gint result = gtk_dialog_run (GTK_DIALOG (codec_dialog)); switch (result) { case GTK_RESPONSE_ACCEPT: defaults->bit_rate = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(bit_rate)); defaults->sample_format = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(sample_fmt)); break; default: // do nothing since dialog was cancelled break; } gtk_widget_destroy (codec_dialog); } /* * gtk3 window key pressed event * args: * win - pointer to widget (main window) where event ocurred * event - pointer to GDK key event structure * data - pointer to user data * * asserts: * none * * returns: true if we handled the event or false otherwise */ gboolean window_key_pressed (GtkWidget *win, GdkEventKey *event, void *data) { /* If we have modifiers, and either Ctrl, Mod1 (Alt), or any * of Mod3 to Mod5 (Mod2 is num-lock...) are pressed, we * let Gtk+ handle the key */ //printf("GUVCVIEW: key pressed (key:%i)\n", event->keyval); if (event->state != 0 && ((event->state & GDK_CONTROL_MASK) || (event->state & GDK_MOD1_MASK) || (event->state & GDK_MOD3_MASK) || (event->state & GDK_MOD4_MASK) || (event->state & GDK_MOD5_MASK))) return FALSE; if(v4l2core_has_pantilt_id()) { int id = 0; int value = 0; switch (event->keyval) { case GDK_KEY_Down: case GDK_KEY_KP_Down: id = V4L2_CID_TILT_RELATIVE; value = v4l2core_get_tilt_step(); break; case GDK_KEY_Up: case GDK_KEY_KP_Up: id = V4L2_CID_TILT_RELATIVE; value = - v4l2core_get_tilt_step(); break; case GDK_KEY_Left: case GDK_KEY_KP_Left: id = V4L2_CID_PAN_RELATIVE; value = v4l2core_get_pan_step(); break; case GDK_KEY_Right: case GDK_KEY_KP_Right: id = V4L2_CID_PAN_RELATIVE; value = - v4l2core_get_pan_step(); break; default: break; } if(id != 0 && value != 0) { v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(control) { control->value = value; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); return TRUE; } } } switch (event->keyval) { case GDK_KEY_WebCam: /* camera button pressed */ if (get_default_camera_button_action() == DEF_ACTION_IMAGE) gui_click_image_capture_button_gtk3(); else gui_click_video_capture_button_gtk3(); return TRUE; case GDK_KEY_V: case GDK_KEY_v: gui_click_video_capture_button_gtk3(); return TRUE; case GDK_KEY_I: case GDK_KEY_i: gui_click_image_capture_button_gtk3(); return TRUE; } return FALSE; } /* * device list events timer callback * args: * data - pointer to user data * * asserts: * none * * returns: true if timer is to be reset or false otherwise */ gboolean check_device_events(gpointer data) { if(v4l2core_check_device_list_events()) { /*update device list*/ g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), G_CALLBACK (devices_changed), NULL); GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model (GTK_COMBO_BOX(get_wgtDevices_gtk3()))); gtk_list_store_clear(store); v4l2_device_list *device_list = v4l2core_get_device_list(); int i = 0; for(i = 0; i < (device_list->num_devices); i++) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), device_list->list_devices[i].name); if(device_list->list_devices[i].current) gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),i); } g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), G_CALLBACK (devices_changed), NULL); } return (TRUE); } guvcview-2.0.2+debian/guvcview/gui_gtk3_callbacks.h000066400000000000000000000307121256377215300223310ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GUI_GTK3_CALLBACKS_H #define GUI_GTK3_CALLBACKS_H #include #include /* support for internationalization - i18n */ #include #include "gviewv4l2core.h" #include "gviewencoder.h" /* * delete event (close window) * args: * widget - pointer to event widget * event - pointe to event data * data - pointer to user data * * asserts: * none * * returns: error code */ int delete_event (GtkWidget *widget, GdkEventConfigure *event, void *data); /* * quit button clicked event * args: * widget - pointer to widget that caused the event * data - pointer to user data * * asserts: * none * * returns: none */ void quit_button_clicked(GtkWidget *widget, void *data); /* * camera_button_menu toggled event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void camera_button_menu_changed (GtkWidget *item, void *data); /* * control default clicked event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void control_defaults_clicked (GtkWidget *item, void *data); /* * control profile (load/save) clicked event * args: * widget - pointer to event widget * data - pointer to user data * * asserts: * none * * returns: none */ void controls_profile_clicked (GtkWidget *item, void *data); /* * photo suffix toggled event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void photo_sufix_toggled (GtkWidget *item, void *data); /* * video suffix toggled event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_sufix_toggled (GtkWidget *item, void *data); /* * video codec changed event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_codec_changed (GtkRadioMenuItem *item, void *data); /* * audio codec changed event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_codec_changed (GtkRadioMenuItem *item, void *data); /* * photo file clicked event * args: * item - pointer to widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void photo_file_clicked (GtkWidget *item, void *data); /* * video file clicked event * args: * item - pointer to widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void video_file_clicked (GtkWidget *item, void *data); /* * capture image button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void capture_image_clicked (GtkButton *button, void *data); /* * capture video button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void capture_video_clicked(GtkToggleButton *button, void *data); /* * pan/tilt step changed * args: * spin - spinbutton that generated the event * data - pointer to user data * * asserts: * none * * returns: * none */ void pan_tilt_step_changed (GtkSpinButton *spin, void *data); /* * Pan Tilt button 1 clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_PanTilt1_clicked (GtkButton * Button, void *data); /* * Pan Tilt button 2 clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_PanTilt2_clicked (GtkButton * Button, void *data); /* * generic button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void button_clicked (GtkButton * Button, void *data); #ifdef V4L2_CTRL_TYPE_STRING /* * a string control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * control->string is not null * * returns: none */ void string_button_clicked(GtkButton * Button, void *data); #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 /* * a int64 control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void int64_button_clicked(GtkButton * Button, void *data); #endif #ifdef V4L2_CTRL_TYPE_BITMASK /* * a bitmask control apply button clicked * args: * button - button that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void bitmask_button_clicked(GtkButton * Button, void *data); #endif /* * slider changed event * args: * range - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void slider_changed (GtkRange * range, void *data); /* * spin changed event * args: * spin - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void spin_changed (GtkSpinButton * spin, void *data); /* * combo box chaged event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void combo_changed (GtkComboBox * combo, void *data); /* * bayer pixel order combo box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void bayer_pix_ord_changed (GtkComboBox * combo, void *data); /* * check box changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void check_changed (GtkToggleButton *toggle, void *data); /* * device list box changed event * args: * wgtDevices - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void devices_changed (GtkComboBox *wgtDevices, void *data); /* * frame rate list box changed event * args: * wgtFrameRate - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void frame_rate_changed (GtkComboBox *wgtFrameRate, void *data); /* * resolution list box changed event * args: * wgtResolution - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void resolution_changed (GtkComboBox *wgtResolution, void *data); /* * device pixel format list box changed event * args: * wgtInpType - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void format_changed(GtkComboBox *wgtInpType, void *data); /* * render fx filter changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void render_fx_filter_changed(GtkToggleButton *toggle, void *data); /* * audio fx filter changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_fx_filter_changed(GtkToggleButton *toggle, void *data); /* * render osd changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void render_osd_changed(GtkToggleButton *toggle, void *data); /* * software autofocus checkbox changed event * args: * toggle - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void autofocus_changed (GtkToggleButton * toggle, void *data); /* * software autofocus button clicked event * args: * button - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void setfocus_clicked (GtkButton * button, void *data); /* * audio api list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_api_changed(GtkComboBox *combo, void *data); /* * audio device list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_device_changed(GtkComboBox *combo, void *data); /* * audio samplerate list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_samplerate_changed(GtkComboBox *combo, void *data); /* * audio channels list box changed event * args: * combo - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_channels_changed(GtkComboBox *combo, void *data); /* * audio latency changed event * args: * range - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void audio_latency_changed(GtkRange *range, void *data); /* * video encoder properties clicked event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void encoder_video_properties(GtkMenuItem *item, void *data); /* * audio encoder properties clicked event * args: * item - widget that generated the event * data - pointer to user data * * asserts: * none * * returns: none */ void encoder_audio_properties(GtkMenuItem *item, void *data); /* * gtk3 window key pressed event * args: * win - pointer to widget (main window) where event ocurred * event - pointer to GDK key event structure * data - pointer to user data * * asserts: * none * * returns: true if we handled the event or false otherwise */ gboolean window_key_pressed (GtkWidget *win, GdkEventKey *event, void *data); /***** TIMERS *******/ /* * device list events timer callback * args: * data - pointer to user data * * asserts: * none * * returns: true if timer is to be reset or false otherwise */ gboolean check_device_events(gpointer data); #endif guvcview-2.0.2+debian/guvcview/gui_gtk3_h264ctrls.c000066400000000000000000001634031256377215300221440ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" #include "gviewrender.h" #include "video_capture.h" extern int debug_level; extern int is_control_panel; /* * H264 control widgets */ GtkWidget *RateControlMode = NULL; GtkWidget *RateControlMode_cbr_flag = NULL; GtkWidget *TemporalScaleMode = NULL; GtkWidget *SpatialScaleMode = NULL; GtkWidget *FrameInterval = NULL; GtkWidget *BitRate = NULL; GtkWidget *Hints_res = NULL; GtkWidget *Hints_prof = NULL; GtkWidget *Hints_ratecontrol = NULL; GtkWidget *Hints_usage = NULL; GtkWidget *Hints_slicemode = NULL; GtkWidget *Hints_sliceunit = NULL; GtkWidget *Hints_view = NULL; GtkWidget *Hints_temporal = NULL; GtkWidget *Hints_snr = NULL; GtkWidget *Hints_spatial = NULL; GtkWidget *Hints_spatiallayer = NULL; GtkWidget *Hints_frameinterval = NULL; GtkWidget *Hints_leakybucket = NULL; GtkWidget *Hints_bitrate = NULL; GtkWidget *Hints_cabac = NULL; GtkWidget *Hints_iframe = NULL; GtkWidget *SliceMode = NULL; GtkWidget *SliceUnits = NULL; GtkWidget *Profile = NULL; GtkWidget *Profile_flags = NULL; GtkWidget *IFramePeriod = NULL; GtkWidget *EstimatedVideoDelay = NULL; GtkWidget *EstimatedMaxConfigDelay = NULL; GtkWidget *UsageType = NULL; GtkWidget *SNRScaleMode = NULL; GtkWidget *StreamFormat = NULL; GtkWidget *EntropyCABAC = NULL; GtkWidget *Timestamp = NULL; GtkWidget *NumOfReorderFrames = NULL; GtkWidget *PreviewFlipped = NULL; GtkWidget *View = NULL; GtkWidget *StreamID = NULL; GtkWidget *SpatialLayerRatio = NULL; GtkWidget *LeakyBucketSize = NULL; /*disabled*/ GtkWidget *StreamMuxOption = NULL; GtkWidget *StreamMuxOption_aux = NULL; GtkWidget *StreamMuxOption_mjpgcontainer = NULL; /* * update controls from commit probe data * args: * none * * asserts: * none * * returns: none */ static void update_h264_controls() { uvcx_video_config_probe_commit_t *config_probe_req = v4l2core_get_h264_config_probe_req(); //dwFrameInterval //gtk_spin_button_set_value(GTK_SPIN_BUTTON(h264_controls->FrameInterval), config_probe_req->dwFrameInterval); //dwBitRate gtk_spin_button_set_value(GTK_SPIN_BUTTON(BitRate), config_probe_req->dwBitRate); //bmHints uint16_t hints = config_probe_req->bmHints; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_res), ((hints & 0x0001) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_prof), ((hints & 0x0002) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_ratecontrol), ((hints & 0x0004) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_usage), ((hints & 0x0008) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_slicemode), ((hints & 0x0010) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_sliceunit), ((hints & 0x0020) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_view), ((hints & 0x0040) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_temporal), ((hints & 0x0080) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_snr), ((hints & 0x0100) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_spatial), ((hints & 0x0200) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_spatiallayer), ((hints & 0x0400) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_frameinterval), ((hints & 0x0800) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_leakybucket), ((hints & 0x1000) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_bitrate), ((hints & 0x2000) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_cabac), ((hints & 0x4000) != 0)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Hints_iframe), ((hints & 0x8000) != 0)); //wWidth x wHeight //wSliceMode gtk_combo_box_set_active(GTK_COMBO_BOX(SliceMode), config_probe_req->wSliceMode); //wSliceUnits gtk_spin_button_set_value(GTK_SPIN_BUTTON(SliceUnits), config_probe_req->wSliceUnits); //wProfile uint16_t profile = config_probe_req->wProfile & 0xFF00; int prof_index = 0; switch(profile) { case 0x4200: prof_index = 0; break; case 0x4D00: prof_index = 1; break; case 0x6400: prof_index = 2; break; case 0x5300: prof_index = 3; break; case 0x5600: prof_index = 4; break; case 0x7600: prof_index = 5; break; case 0x8000: prof_index = 6; break; default: fprintf(stderr, "GUVCVIEW (H264 probe) unknown profile mode 0x%X\n", profile); break; } gtk_combo_box_set_active(GTK_COMBO_BOX(Profile), prof_index); gtk_spin_button_set_value(GTK_SPIN_BUTTON(Profile_flags), config_probe_req->wProfile & 0x00FF); //wIFramePeriod gtk_spin_button_set_value(GTK_SPIN_BUTTON(IFramePeriod), config_probe_req->wIFramePeriod); //wEstimatedVideoDelay gtk_spin_button_set_value(GTK_SPIN_BUTTON(EstimatedVideoDelay), config_probe_req->wEstimatedVideoDelay); //wEstimatedMaxConfigDelay gtk_spin_button_set_value(GTK_SPIN_BUTTON(EstimatedMaxConfigDelay), config_probe_req->wEstimatedMaxConfigDelay); //bUsageType int usage_type_ind = (config_probe_req->bUsageType & 0x0F) - 1; if(usage_type_ind < 0) usage_type_ind = 0; gtk_combo_box_set_active(GTK_COMBO_BOX(UsageType), usage_type_ind); //bRateControlMode gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), (config_probe_req->bRateControlMode & 0x03) - 1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(RateControlMode_cbr_flag), config_probe_req->bRateControlMode & 0x0000001C); //bTemporalScaleMode gtk_spin_button_set_value(GTK_SPIN_BUTTON(TemporalScaleMode), config_probe_req->bTemporalScaleMode); //bSpatialScaleMode gtk_spin_button_set_value(GTK_SPIN_BUTTON(SpatialScaleMode), config_probe_req->bSpatialScaleMode); //bSNRScaleMode uint8_t snrscalemode = config_probe_req->bSNRScaleMode & 0x0F; int snrscalemode_index = 0; switch(snrscalemode) { case 0: snrscalemode_index = 0; break; case 2: case 3: case 4: case 5: case 6: snrscalemode_index = snrscalemode - 1; break; } gtk_combo_box_set_active(GTK_COMBO_BOX(SNRScaleMode), snrscalemode_index); //bStreamMuxOption gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption),((config_probe_req->bStreamMuxOption & 0x01) != 0)); uint8_t streammux = config_probe_req->bStreamMuxOption & 0x0E; int streammux_index = 0; switch(streammux) { case 2: streammux_index = 0; break; case 4: streammux_index = 1; break; case 8: streammux_index = 2; break; } gtk_combo_box_set_active (GTK_COMBO_BOX(StreamMuxOption_aux), streammux_index); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer),((config_probe_req->bStreamMuxOption & 0x40) != 0)); //bStreamFormat gtk_combo_box_set_active (GTK_COMBO_BOX(StreamFormat), config_probe_req->bStreamMuxOption & 0x01); //bEntropyCABAC gtk_combo_box_set_active (GTK_COMBO_BOX(EntropyCABAC), config_probe_req->bEntropyCABAC & 0x01); //bTimestamp gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Timestamp), (config_probe_req->bTimestamp & 0x01) != 0); //bNumOfReorderFrames gtk_spin_button_set_value (GTK_SPIN_BUTTON(NumOfReorderFrames), config_probe_req->bNumOfReorderFrames); //bPreviewFlipped gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(PreviewFlipped), (config_probe_req->bPreviewFlipped & 0x01) != 0); //bView gtk_spin_button_set_value (GTK_SPIN_BUTTON(View), config_probe_req->bView); //bStreamID gtk_spin_button_set_value (GTK_SPIN_BUTTON(StreamID), config_probe_req->bStreamID); //bSpatialLayerRatio int SLRatio = config_probe_req->bSpatialLayerRatio & 0x000000FF; gdouble val = (gdouble) ((SLRatio & 0x000000F0)>>4) + (gdouble)((SLRatio & 0x0000000F)/16); gtk_spin_button_set_value (GTK_SPIN_BUTTON(SpatialLayerRatio), val); //wLeakyBucketSize gtk_spin_button_set_value (GTK_SPIN_BUTTON(LeakyBucketSize), config_probe_req->wLeakyBucketSize); } /* * fill commit probe data from control values * args: * none * * asserts: * none * * returns: none */ static void fill_video_config_probe () { uvcx_video_config_probe_commit_t *config_probe_req = v4l2core_get_h264_config_probe_req(); //dwFrameInterval uint32_t frame_interval = (v4l2core_get_fps_num() * 1000000000LL / v4l2core_get_fps_denom())/100; config_probe_req->dwFrameInterval = frame_interval;//(uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(h264_controls->FrameInterval)); //dwBitRate config_probe_req->dwBitRate = (uint32_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(BitRate)); //bmHints uint16_t hints = 0x0000; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_res)) ? 0x0001 : 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_prof)) ? 0x0002 : 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_ratecontrol)) ? 0x0004: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_usage)) ? 0x0008: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_slicemode)) ? 0x0010: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_sliceunit)) ? 0x0020: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_view)) ? 0x0040: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_temporal)) ? 0x0080: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_snr)) ? 0x0100: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_spatial)) ? 0x0200: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_spatiallayer)) ? 0x0400: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_frameinterval)) ? 0x0800: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_leakybucket)) ? 0x1000: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_bitrate)) ? 0x2000: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_cabac)) ? 0x4000: 0; hints |= gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Hints_iframe)) ? 0x8000: 0; config_probe_req->bmHints = hints; //wWidth x wHeight config_probe_req->wWidth = (uint16_t) v4l2core_get_frame_width(); config_probe_req->wHeight = (uint16_t) v4l2core_get_frame_height(); //wSliceMode config_probe_req->wSliceMode = (uint16_t) gtk_combo_box_get_active(GTK_COMBO_BOX(SliceMode)); //wSliceUnits config_probe_req->wSliceUnits = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(SliceUnits)); //wProfile int profile_index = gtk_combo_box_get_active(GTK_COMBO_BOX(Profile)); uint16_t profile = 0x4200; switch(profile_index) { case 0: profile = 0x4200; break; case 1: profile = 0x4D00; break; case 2: profile = 0x6400; break; case 3: profile = 0x5300; break; case 4: profile = 0x5600; break; case 5: profile = 0x7600; break; case 6: profile = 0x8000; break; default: fprintf(stderr, "GUVCVIEW: (H264 probe) unknown profile\n"); break; } profile |= (uint16_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(Profile_flags)) & 0x000000FF); config_probe_req->wProfile = profile; //wIFramePeriod config_probe_req->wIFramePeriod = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(IFramePeriod)); //wEstimatedVideoDelay config_probe_req->wEstimatedVideoDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(EstimatedVideoDelay)); //wEstimatedMaxConfigDelay config_probe_req->wEstimatedMaxConfigDelay = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(EstimatedMaxConfigDelay)); //bUsageType config_probe_req->bUsageType = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(UsageType)) + 1); //bRateControlMode config_probe_req->bRateControlMode = (uint8_t) (gtk_combo_box_get_active(GTK_COMBO_BOX(RateControlMode)) + 1); config_probe_req->bRateControlMode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(RateControlMode_cbr_flag)) & 0x0000001C); //bTemporalScaleMode config_probe_req->bTemporalScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(TemporalScaleMode)); //bSpatialScaleMode config_probe_req->bSpatialScaleMode = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(SpatialScaleMode)); //bSNRScaleMode int snrscalemode_index = gtk_combo_box_get_active(GTK_COMBO_BOX(SNRScaleMode)); config_probe_req->bSNRScaleMode = 0; switch(snrscalemode_index) { case 1: case 2: case 3: case 4: case 5: config_probe_req->bSNRScaleMode = snrscalemode_index + 1; break; } //bStreamMuxOption /* uint8_t streammux = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(StreamMuxOption)) ? 0x01: 0; int streammux_index = gtk_combo_box_get_active(GTK_COMBO_BOX(StreamMuxOption_aux)); switch(streammux_index) { case 0: streammux |= 0x02; break; case 1: streammux |= 0x04; break; case 2: streammux |= 0x08; break; } streammux |= gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer)) ? 0x40 : 0x00; config_probe_req->bStreamMuxOption = streammux; //bStreamFormat config_probe_req->bStreamMuxOption = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(StreamFormat)) & 0x01; */ //bEntropyCABAC config_probe_req->bEntropyCABAC = (uint8_t) gtk_combo_box_get_active(GTK_COMBO_BOX(EntropyCABAC)) & 0x01; //bTimestamp config_probe_req->bTimestamp = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(Timestamp)) ? 0x01 : 0x00; //bNumOfReorderFrames config_probe_req->bNumOfReorderFrames = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(NumOfReorderFrames)); //bPreviewFlipped config_probe_req->bPreviewFlipped = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(PreviewFlipped)) ? 0x01 : 0x00; //bView config_probe_req->bView = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(View)); //bStreamID config_probe_req->bStreamID = (uint8_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(StreamID)); //bSpatialLayerRatio gdouble spatialratio = gtk_spin_button_get_value(GTK_SPIN_BUTTON(SpatialLayerRatio)); uint8_t high_nibble = floor(spatialratio); uint8_t lower_nibble = floor((spatialratio - high_nibble) * 16); config_probe_req->bSpatialLayerRatio = (high_nibble << 4) + lower_nibble; //wLeakyBucketSize config_probe_req->wLeakyBucketSize = (uint16_t) gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(LeakyBucketSize)); } /* * h264 video rate control mode callback * args: * combo - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_rate_control_mode_changed(GtkComboBox *combo, void *data) { uint8_t rate_mode = (uint8_t) (gtk_combo_box_get_active (combo) + 1); rate_mode |= (uint8_t) (gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(RateControlMode_cbr_flag)) & 0x0000001C); v4l2core_set_h264_video_rate_control_mode(rate_mode); rate_mode = v4l2core_get_h264_video_rate_control_mode(UVC_GET_CUR); int ratecontrolmode_index = rate_mode - 1; // from 0x01 to 0x03 if(ratecontrolmode_index < 0) ratecontrolmode_index = 0; g_signal_handlers_block_by_func(combo, G_CALLBACK (h264_rate_control_mode_changed), data); gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), ratecontrolmode_index); g_signal_handlers_unblock_by_func(combo, G_CALLBACK (h264_rate_control_mode_changed), data); } /* * h264 temporal scale mode callback * args: * spin - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_TemporalScaleMode_changed(GtkSpinButton *spin, void *data) { uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); v4l2core_set_h264_temporal_scale_mode(scale_mode); scale_mode = v4l2core_get_h264_temporal_scale_mode(UVC_GET_CUR) & 0x07; g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_TemporalScaleMode_changed), data); gtk_spin_button_set_value (spin, scale_mode); g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_TemporalScaleMode_changed), data); } /* * h264 spatial scale mode callback * args: * spin - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_SpatialScaleMode_changed(GtkSpinButton *spin, void *data) { uint8_t scale_mode = (uint8_t) gtk_spin_button_get_value_as_int(spin); v4l2core_set_h264_spatial_scale_mode(scale_mode); scale_mode = v4l2core_get_h264_spatial_scale_mode(UVC_GET_CUR) & 0x07; g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_SpatialScaleMode_changed), data); gtk_spin_button_set_value (spin, scale_mode); g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_SpatialScaleMode_changed), data); } /* * h264 Frame Interval callback * args: * spin - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_FrameInterval_changed(GtkSpinButton *spin, void *data) { uint32_t framerate = (uint32_t) gtk_spin_button_get_value_as_int(spin); v4l2core_set_h264_frame_rate_config(framerate); framerate = v4l2core_get_h264_frame_rate_config(); g_signal_handlers_block_by_func (spin, G_CALLBACK (h264_FrameInterval_changed), data); gtk_spin_button_set_value (spin, framerate); g_signal_handlers_unblock_by_func (spin, G_CALLBACK (h264_FrameInterval_changed), data); } /* * h264 commit button callback * args: * button - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_commit_button_clicked(GtkButton *button, void *data) { fill_video_config_probe(); v4l2core_set_h264_no_probe_default(1); request_format_update(); int counter = 0; /*wait for device->h264_no_probe = 0*/ struct timespec req = { .tv_sec = 0, .tv_nsec = 50000000};/*nanosec*/ while(v4l2core_get_h264_no_probe_default() > 0 && counter < 10) { nanosleep(&req, NULL); counter++; } /*make sure we reset this flag, although the core probably handle it already*/ v4l2core_set_h264_no_probe_default(0); update_h264_controls(); } /* * h264 reset button callback * args: * button - widget that caused the event * data - user data * * asserts: * none * * returns: none */ void h264_reset_button_clicked(GtkButton *button, void *data) { v4l2core_reset_h264_encoder(); } /* * attach h264 controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_h264ctrls (GtkWidget *parent) { /*assertions*/ assert(parent != NULL); if(debug_level > 1) printf("GUVCVIEW: attaching video controls\n"); //get current values v4l2core_probe_h264_config_probe_req(UVC_GET_CUR, NULL); //get Max values uvcx_video_config_probe_commit_t config_probe_max; v4l2core_probe_h264_config_probe_req(UVC_GET_MAX, &config_probe_max); //get Min values uvcx_video_config_probe_commit_t config_probe_min; v4l2core_probe_h264_config_probe_req(UVC_GET_MIN, &config_probe_min); GtkWidget *h264_controls_grid = gtk_grid_new(); gtk_widget_show (h264_controls_grid); gtk_grid_set_column_homogeneous (GTK_GRID(h264_controls_grid), FALSE); gtk_widget_set_hexpand (h264_controls_grid, TRUE); gtk_widget_set_halign (h264_controls_grid, GTK_ALIGN_FILL); gtk_grid_set_row_spacing (GTK_GRID(h264_controls_grid), 4); gtk_grid_set_column_spacing (GTK_GRID (h264_controls_grid), 4); gtk_container_set_border_width (GTK_CONTAINER (h264_controls_grid), 2); int line = 0; //streaming controls //bRateControlMode line++; GtkWidget* label_RateControlMode = gtk_label_new(_("Rate Control Mode:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_RateControlMode), 1); gtk_label_set_yalign(GTK_LABEL(label_RateControlMode), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_RateControlMode), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_RateControlMode, 0, line, 1, 1); gtk_widget_show (label_RateControlMode); uint8_t min_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(UVC_GET_MIN) & 0x03; uint8_t max_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(UVC_GET_MAX) & 0x03; RateControlMode = gtk_combo_box_text_new(); if(max_ratecontrolmode >= 1 && min_ratecontrolmode < 2) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), _("CBR")); if(max_ratecontrolmode >= 2 && min_ratecontrolmode < 3) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), _("VBR")); if(max_ratecontrolmode >= 3 && min_ratecontrolmode < 4) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(RateControlMode), _("Constant QP")); uint8_t cur_ratecontrolmode = v4l2core_get_h264_video_rate_control_mode(UVC_GET_CUR) & 0x03; int ratecontrolmode_index = cur_ratecontrolmode - 1; // from 0x01 to 0x03 if(ratecontrolmode_index < 0) ratecontrolmode_index = 0; gtk_combo_box_set_active(GTK_COMBO_BOX(RateControlMode), ratecontrolmode_index); //connect signal g_signal_connect (GTK_COMBO_BOX_TEXT(RateControlMode), "changed", G_CALLBACK (h264_rate_control_mode_changed), NULL); gtk_grid_attach (GTK_GRID(h264_controls_grid), RateControlMode, 1, line, 1 ,1); gtk_widget_show (RateControlMode); //bRateControlMode flags (Bits 4-8) line++; GtkWidget* label_RateControlMode_cbr_flag = gtk_label_new(_("Rate Control Mode flags:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_RateControlMode_cbr_flag), 1); gtk_label_set_yalign(GTK_LABEL(label_RateControlMode_cbr_flag), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_RateControlMode_cbr_flag), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_RateControlMode_cbr_flag, 0, line, 1, 1); gtk_widget_show (label_RateControlMode_cbr_flag); uint8_t cur_vrcflags = v4l2core_get_h264_video_rate_control_mode( UVC_GET_CUR) & 0x1C; uint8_t max_vrcflags = v4l2core_get_h264_video_rate_control_mode( UVC_GET_MAX) & 0x1C; uint8_t min_vrcflags = v4l2core_get_h264_video_rate_control_mode( UVC_GET_MIN) & 0x1C; GtkAdjustment *adjustment7 = gtk_adjustment_new ( cur_vrcflags, min_vrcflags, max_vrcflags, 1, 10, 0); RateControlMode_cbr_flag = gtk_spin_button_new(adjustment7, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(RateControlMode_cbr_flag), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), RateControlMode_cbr_flag, 1, line, 1 ,1); gtk_widget_show (RateControlMode_cbr_flag); //bTemporalScaleMode line++; GtkWidget* label_TemporalScaleMode = gtk_label_new(_("Temporal Scale Mode:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_TemporalScaleMode), 1); gtk_label_set_yalign(GTK_LABEL(label_TemporalScaleMode), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_TemporalScaleMode), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_TemporalScaleMode, 0, line, 1, 1); gtk_widget_show (label_TemporalScaleMode); uvcx_video_config_probe_commit_t *h264_config_probe_req = v4l2core_get_h264_config_probe_req(); uint8_t cur_tsmflags = h264_config_probe_req->bTemporalScaleMode & 0x07; uint8_t max_tsmflags = config_probe_max.bTemporalScaleMode & 0x07; uint8_t min_tsmflags = config_probe_min.bTemporalScaleMode & 0x07; GtkAdjustment *adjustment8 = gtk_adjustment_new ( cur_tsmflags, min_tsmflags, max_tsmflags, 1, 10, 0); TemporalScaleMode = gtk_spin_button_new(adjustment8, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(TemporalScaleMode), TRUE); g_signal_connect(GTK_SPIN_BUTTON(TemporalScaleMode),"value-changed", G_CALLBACK (h264_TemporalScaleMode_changed), NULL); gtk_grid_attach (GTK_GRID(h264_controls_grid), TemporalScaleMode, 1, line, 1 ,1); gtk_widget_show (TemporalScaleMode); //bSpatialScaleMode line++; GtkWidget* label_SpatialScaleMode = gtk_label_new(_("Spatial Scale Mode:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SpatialScaleMode), 1); gtk_label_set_yalign(GTK_LABEL(label_SpatialScaleMode), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SpatialScaleMode), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SpatialScaleMode, 0, line, 1, 1); gtk_widget_show (label_SpatialScaleMode); uint8_t cur_ssmflags = h264_config_probe_req->bSpatialScaleMode & 0x0F; uint8_t max_ssmflags = config_probe_max.bSpatialScaleMode & 0x0F; uint8_t min_ssmflags = config_probe_min.bSpatialScaleMode & 0x0F; GtkAdjustment *adjustment9 = gtk_adjustment_new ( cur_ssmflags, min_ssmflags, max_ssmflags, 1, 10, 0); SpatialScaleMode = gtk_spin_button_new(adjustment9, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(SpatialScaleMode), TRUE); g_signal_connect(GTK_SPIN_BUTTON(SpatialScaleMode),"value-changed", G_CALLBACK (h264_SpatialScaleMode_changed), NULL); gtk_grid_attach (GTK_GRID(h264_controls_grid), SpatialScaleMode, 1, line, 1 ,1); gtk_widget_show (SpatialScaleMode); //dwFrameInterval if(is_control_panel) //if streaming use fps in video tab to set FrameInterval { line++; GtkWidget* label_FrameInterval = gtk_label_new(_("Frame Interval (100ns units):")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_FrameInterval), 1); gtk_label_set_yalign(GTK_LABEL(label_FrameInterval), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_FrameInterval), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_FrameInterval, 0, line, 1, 1); gtk_widget_show (label_FrameInterval); //uint32_t cur_framerate = (global->fps_num * 1000000000LL / global->fps)/100; uint32_t cur_framerate = v4l2core_get_h264_frame_rate_config(); uint32_t max_framerate = v4l2core_query_h264_frame_rate_config( UVC_GET_MAX); uint32_t min_framerate = v4l2core_query_h264_frame_rate_config( UVC_GET_MIN); GtkAdjustment *adjustment0 = gtk_adjustment_new ( cur_framerate, min_framerate, max_framerate, 1, 10, 0); FrameInterval = gtk_spin_button_new(adjustment0, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(FrameInterval), TRUE); g_signal_connect(GTK_SPIN_BUTTON(FrameInterval),"value-changed", G_CALLBACK (h264_FrameInterval_changed), NULL); gtk_grid_attach (GTK_GRID(h264_controls_grid), FrameInterval, 1, line, 1 ,1); gtk_widget_show (FrameInterval); } /* * probe_commit specific controls */ if(is_control_panel) return 0; //don't create probe_commit specific controls if we are in control panel mode //dwBitRate line++; GtkWidget* label_BitRate = gtk_label_new(_("Bit Rate:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_BitRate), 1); gtk_label_set_yalign(GTK_LABEL(label_BitRate), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_BitRate), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_BitRate, 0, line, 1, 1); gtk_widget_show (label_BitRate); GtkAdjustment *adjustment1 = gtk_adjustment_new ( h264_config_probe_req->dwBitRate, config_probe_min.dwBitRate, config_probe_max.dwBitRate, 1, 10, 0); BitRate = gtk_spin_button_new(adjustment1, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(BitRate), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), BitRate, 1, line, 1 ,1); gtk_widget_show (BitRate); //bmHints line++; GtkWidget* hints_table = gtk_grid_new(); GtkWidget* label_Hints = gtk_label_new(_("Hints:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Hints), 1); gtk_label_set_yalign(GTK_LABEL(label_Hints), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Hints), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(hints_table), label_Hints, 0, 1, 2, 1); gtk_widget_show (label_Hints); Hints_res = gtk_check_button_new_with_label (_("Resolution")); gtk_grid_attach (GTK_GRID(hints_table), Hints_res, 0, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_res),((h264_config_probe_req->bmHints & 0x0001) > 0)); gtk_widget_show (Hints_res); Hints_prof = gtk_check_button_new_with_label (_("Profile")); gtk_grid_attach (GTK_GRID(hints_table), Hints_prof, 1, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_prof),((h264_config_probe_req->bmHints & 0x0002) > 0)); gtk_widget_show (Hints_prof); Hints_ratecontrol = gtk_check_button_new_with_label (_("Rate Control")); gtk_grid_attach (GTK_GRID(hints_table), Hints_ratecontrol, 2, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_ratecontrol),((h264_config_probe_req->bmHints & 0x0004) > 0)); gtk_widget_show (Hints_ratecontrol); Hints_usage = gtk_check_button_new_with_label (_("Usage Type")); gtk_grid_attach (GTK_GRID(hints_table), Hints_usage, 3, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_usage),((h264_config_probe_req->bmHints & 0x0008) > 0)); gtk_widget_show (Hints_usage); Hints_slicemode = gtk_check_button_new_with_label (_("Slice Mode")); gtk_grid_attach (GTK_GRID(hints_table), Hints_slicemode, 0, 3, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_slicemode),((h264_config_probe_req->bmHints & 0x0010) > 0)); gtk_widget_show (Hints_slicemode); Hints_sliceunit = gtk_check_button_new_with_label (_("Slice Unit")); gtk_grid_attach (GTK_GRID(hints_table), Hints_sliceunit, 1, 3, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_sliceunit),((h264_config_probe_req->bmHints & 0x0020) > 0)); gtk_widget_show (Hints_sliceunit); Hints_view = gtk_check_button_new_with_label (_("MVC View")); gtk_grid_attach (GTK_GRID(hints_table), Hints_view, 2, 3, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_view),((h264_config_probe_req->bmHints & 0x0040) > 0)); gtk_widget_show (Hints_view); Hints_temporal = gtk_check_button_new_with_label (_("Temporal Scale")); gtk_grid_attach (GTK_GRID(hints_table), Hints_temporal, 3, 3, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_temporal),((h264_config_probe_req->bmHints & 0x0080) > 0)); gtk_widget_show (Hints_temporal); Hints_snr = gtk_check_button_new_with_label (_("SNR Scale")); gtk_grid_attach (GTK_GRID(hints_table), Hints_snr, 0, 4, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_snr),((h264_config_probe_req->bmHints & 0x0100) > 0)); gtk_widget_show (Hints_snr); Hints_spatial = gtk_check_button_new_with_label (_("Spatial Scale")); gtk_grid_attach (GTK_GRID(hints_table), Hints_spatial, 1, 4, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_spatial),((h264_config_probe_req->bmHints & 0x0200) > 0)); gtk_widget_show (Hints_spatial); Hints_spatiallayer = gtk_check_button_new_with_label (_("Spatial Layer Ratio")); gtk_grid_attach (GTK_GRID(hints_table), Hints_spatiallayer, 2, 4, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_spatiallayer),((h264_config_probe_req->bmHints & 0x0400) > 0)); gtk_widget_show (Hints_spatiallayer); Hints_frameinterval = gtk_check_button_new_with_label (_("Frame Interval")); gtk_grid_attach (GTK_GRID(hints_table), Hints_frameinterval, 3, 4, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_frameinterval),((h264_config_probe_req->bmHints & 0x0800) > 0)); gtk_widget_show (Hints_frameinterval); Hints_leakybucket = gtk_check_button_new_with_label (_("Leaky Bucket Size")); gtk_grid_attach (GTK_GRID(hints_table), Hints_leakybucket, 0, 5, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_leakybucket),((h264_config_probe_req->bmHints & 0x1000) > 0)); gtk_widget_show (Hints_leakybucket); Hints_bitrate = gtk_check_button_new_with_label (_("Bit Rate")); gtk_grid_attach (GTK_GRID(hints_table), Hints_bitrate, 1, 5, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_bitrate),((h264_config_probe_req->bmHints & 0x2000) > 0)); gtk_widget_show (Hints_bitrate); Hints_cabac = gtk_check_button_new_with_label (_("CABAC")); gtk_grid_attach (GTK_GRID(hints_table), Hints_cabac, 2, 5, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Hints_cabac),((h264_config_probe_req->bmHints & 0x4000) > 0)); gtk_widget_show (Hints_cabac); Hints_iframe = gtk_check_button_new_with_label (_("(I) Frame Period")); gtk_grid_attach (GTK_GRID(hints_table), Hints_iframe, 3, 5, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON( Hints_iframe),((h264_config_probe_req->bmHints & 0x8000) > 0)); gtk_widget_show (Hints_iframe); gtk_grid_attach (GTK_GRID(h264_controls_grid), hints_table, 0, line, 2, 1); gtk_widget_show(hints_table); //wWidth x wHeight - use global values //wSliceMode line++; GtkWidget* label_SliceMode = gtk_label_new(_("Slice Mode:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SliceMode), 1); gtk_label_set_yalign(GTK_LABEL(label_SliceMode), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SliceMode), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SliceMode, 0, line, 1, 1); gtk_widget_show (label_SliceMode); SliceMode = gtk_combo_box_text_new(); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), _("no multiple slices")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), _("bits/slice")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), _("Mbits/slice")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SliceMode), _("slices/frame")); gtk_combo_box_set_active(GTK_COMBO_BOX(SliceMode), h264_config_probe_req->wSliceMode); //0 indexed gtk_grid_attach (GTK_GRID(h264_controls_grid), SliceMode, 1, line, 1 ,1); gtk_widget_show (SliceMode); //wSliceUnits line++; GtkWidget* label_SliceUnits = gtk_label_new(_("Slice Units:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SliceUnits), 1); gtk_label_set_yalign(GTK_LABEL(label_SliceUnits), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SliceUnits), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SliceUnits, 0, line, 1, 1); gtk_widget_show (label_SliceUnits); GtkAdjustment *adjustment2 = gtk_adjustment_new ( h264_config_probe_req->wSliceUnits, config_probe_min.wSliceUnits, config_probe_max.wSliceUnits, 1, 10, 0); SliceUnits = gtk_spin_button_new(adjustment2, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(SliceUnits), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), SliceUnits, 1, line, 1 ,1); gtk_widget_show (SliceUnits); //wProfile line++; GtkWidget* label_Profile = gtk_label_new(_("Profile:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Profile), 1); gtk_label_set_yalign(GTK_LABEL(label_Profile), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Profile), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_Profile, 0, line, 1, 1); gtk_widget_show (label_Profile); Profile = gtk_combo_box_text_new(); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Baseline Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Main Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("High Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Scalable Baseline Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Scalable High Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Multiview High Profile")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(Profile), _("Stereo High Profile")); uint16_t profile = h264_config_probe_req->wProfile & 0xFF00; int prof_index = 0; switch(profile) { case 0x4200: prof_index = 0; break; case 0x4D00: prof_index = 1; break; case 0x6400: prof_index = 2; break; case 0x5300: prof_index = 3; break; case 0x5600: prof_index = 4; break; case 0x7600: prof_index = 5; break; case 0x8000: prof_index = 6; break; default: fprintf(stderr, "GUVCVIEW: (H264 probe) unknown profile mode 0x%X\n", profile); break; } gtk_combo_box_set_active(GTK_COMBO_BOX(Profile), prof_index); gtk_grid_attach (GTK_GRID(h264_controls_grid), Profile, 1, line, 1 ,1); gtk_widget_show (Profile); //wProfile (Bits 0-7) line++; GtkWidget* label_Profile_flags = gtk_label_new(_("Profile flags:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Profile_flags), 1); gtk_label_set_yalign(GTK_LABEL(label_Profile_flags), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Profile_flags), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_Profile_flags, 0, line, 1, 1); gtk_widget_show (label_Profile_flags); int cur_flags = h264_config_probe_req->wProfile & 0x000000FF; int max_flags = config_probe_max.wProfile & 0x000000FF; int min_flags = config_probe_min.wProfile & 0x000000FF; GtkAdjustment *adjustment3 = gtk_adjustment_new ( cur_flags, min_flags, max_flags, 1, 10, 0); Profile_flags = gtk_spin_button_new(adjustment3, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(Profile_flags), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), Profile_flags, 1, line, 1 ,1); gtk_widget_show (Profile_flags); //wIFramePeriod line++; GtkWidget* label_IFramePeriod = gtk_label_new(_("(I) Frame Period (ms):")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_IFramePeriod), 1); gtk_label_set_yalign(GTK_LABEL(label_IFramePeriod), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_IFramePeriod), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_IFramePeriod, 0, line, 1, 1); gtk_widget_show (label_IFramePeriod); GtkAdjustment *adjustment4 = gtk_adjustment_new ( h264_config_probe_req->wIFramePeriod, config_probe_min.wIFramePeriod, config_probe_max.wIFramePeriod, 1, 10, 0); IFramePeriod = gtk_spin_button_new(adjustment4, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(IFramePeriod), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), IFramePeriod, 1, line, 1 ,1); gtk_widget_show (IFramePeriod); //wEstimatedVideoDelay line++; GtkWidget* label_EstimatedVideoDelay = gtk_label_new(_("Estimated Video Delay (ms):")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_EstimatedVideoDelay), 1); gtk_label_set_yalign(GTK_LABEL(label_EstimatedVideoDelay), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_EstimatedVideoDelay), 1, 0.5); #endif gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_EstimatedVideoDelay, 0, line, 1, 1); gtk_widget_show (label_EstimatedVideoDelay); GtkAdjustment *adjustment5 = gtk_adjustment_new ( h264_config_probe_req->wEstimatedVideoDelay, config_probe_min.wEstimatedVideoDelay, config_probe_max.wEstimatedVideoDelay, 1, 10, 0); EstimatedVideoDelay = gtk_spin_button_new(adjustment5, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(EstimatedVideoDelay), TRUE); gtk_grid_attach (GTK_GRID((h264_controls_grid)), EstimatedVideoDelay, 1, line, 1 ,1); gtk_widget_show (EstimatedVideoDelay); //wEstimatedMaxConfigDelay line++; GtkWidget* label_EstimatedMaxConfigDelay = gtk_label_new(_("Estimated Max Config Delay (ms):")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_EstimatedMaxConfigDelay), 1); gtk_label_set_yalign(GTK_LABEL(label_EstimatedMaxConfigDelay), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_EstimatedMaxConfigDelay), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_EstimatedMaxConfigDelay, 0, line, 1, 1); gtk_widget_show (label_EstimatedMaxConfigDelay); GtkAdjustment *adjustment6 = gtk_adjustment_new ( h264_config_probe_req->wEstimatedMaxConfigDelay, config_probe_min.wEstimatedMaxConfigDelay, config_probe_max.wEstimatedMaxConfigDelay, 1, 10, 0); EstimatedMaxConfigDelay = gtk_spin_button_new(adjustment6, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(EstimatedMaxConfigDelay), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), EstimatedMaxConfigDelay, 1, line, 1 ,1); gtk_widget_show (EstimatedMaxConfigDelay); //bUsageType line++; GtkWidget* label_UsageType = gtk_label_new(_("Usage Type:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_UsageType), 1); gtk_label_set_yalign(GTK_LABEL(label_UsageType), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_UsageType), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_UsageType, 0, line, 1, 1); gtk_widget_show (label_UsageType); UsageType = gtk_combo_box_text_new(); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("Real-time")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("Broadcast")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("Storage")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("(0) Non-scalable single layer AVC")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("(1) SVC temporal scalability with hierarchical P")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("(2q) SVC temporal scalability + Quality/SNR scalability")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("(2s) SVC temporal scalability + spatial scalability")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(UsageType), _("(3) Full SVC scalability")); uint8_t usage = h264_config_probe_req->bUsageType & 0x0F; int usage_index = usage - 1; // from 0x01 to 0x0F if(usage_index < 0) usage_index = 0; gtk_combo_box_set_active(GTK_COMBO_BOX(UsageType), usage_index); gtk_grid_attach (GTK_GRID(h264_controls_grid), UsageType, 1, line, 1 ,1); gtk_widget_show (UsageType); //bSNRScaleMode line++; GtkWidget* label_SNRScaleMode = gtk_label_new(_("SNR Control Mode:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SNRScaleMode), 1); gtk_label_set_yalign(GTK_LABEL(label_SNRScaleMode), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SNRScaleMode), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SNRScaleMode, 0, line, 1, 1); gtk_widget_show (label_SNRScaleMode); SNRScaleMode = gtk_combo_box_text_new(); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("No SNR Enhancement Layer")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("CGS NonRewrite (2 Layer)")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("CGS NonRewrite (3 Layer)")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("CGS Rewrite (2 Layer)")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("CGS Rewrite (3 Layer)")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(SNRScaleMode), _("MGS (2 Layer)")); uint8_t snrscalemode = h264_config_probe_req->bSNRScaleMode & 0x0F; int snrscalemode_index = 0; switch(snrscalemode) { case 0: snrscalemode_index = 0; break; case 2: case 3: case 4: case 5: case 6: snrscalemode_index = snrscalemode - 1; break; } gtk_combo_box_set_active(GTK_COMBO_BOX(SNRScaleMode), snrscalemode_index); gtk_grid_attach (GTK_GRID(h264_controls_grid), SNRScaleMode, 1, line, 1 ,1); gtk_widget_show (SNRScaleMode); //bStreamMuxOption (done directly in the core) line++; GtkWidget *StreamMuxOption_table = gtk_grid_new(); StreamMuxOption = gtk_check_button_new_with_label (_("Stream Mux Enable")); gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption, 0, 1, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption),((h264_config_probe_req->bStreamMuxOption & 0x01) != 0)); gtk_widget_show (StreamMuxOption); StreamMuxOption_aux = gtk_combo_box_text_new(); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), _("Embed H.264 aux stream")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), _("Embed YUY2 aux stream")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamMuxOption_aux), _("Embed NV12 aux stream")); uint8_t streammux = h264_config_probe_req->bStreamMuxOption & 0x0E; int streammux_index = 0; switch(streammux) { case 2: streammux_index = 0; break; case 4: streammux_index = 1; break; case 8: streammux_index = 2; break; } gtk_combo_box_set_active(GTK_COMBO_BOX(StreamMuxOption_aux), streammux_index); gtk_widget_show(StreamMuxOption_aux); gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption_aux, 1, 1, 1, 1); StreamMuxOption_mjpgcontainer = gtk_check_button_new_with_label (_("MJPG payload container")); gtk_grid_attach (GTK_GRID(StreamMuxOption_table), StreamMuxOption_mjpgcontainer, 2, 1, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(StreamMuxOption_mjpgcontainer),((h264_config_probe_req->bStreamMuxOption & 0x40) != 0)); gtk_widget_show (StreamMuxOption_mjpgcontainer); gtk_grid_attach (GTK_GRID((h264_controls_grid)), StreamMuxOption_table, 0, line, 2, 1); gtk_widget_show(StreamMuxOption_table); gtk_widget_set_sensitive(StreamMuxOption, FALSE); //No support yet (set in the core) gtk_widget_set_sensitive(StreamMuxOption_aux, FALSE); //No support yet (set in the core) gtk_widget_set_sensitive(StreamMuxOption_mjpgcontainer, FALSE); //No support yet (set in the core) //bStreamFormat line++; GtkWidget* label_StreamFormat = gtk_label_new(_("Stream Format:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_StreamFormat), 1); gtk_label_set_yalign(GTK_LABEL(label_StreamFormat), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_StreamFormat), 1, 0.5); #endif gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_StreamFormat, 0, line, 1, 1); gtk_widget_show (label_StreamFormat); StreamFormat = gtk_combo_box_text_new(); //TODO: check for min and max values gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamFormat), _("Byte stream format (H.264 Annex-B)")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(StreamFormat), _("NAL stream format")); uint8_t streamformat = h264_config_probe_req->bStreamFormat & 0x01; int streamformat_index = streamformat; gtk_combo_box_set_active(GTK_COMBO_BOX(StreamFormat), streamformat_index); gtk_grid_attach (GTK_GRID(h264_controls_grid), StreamFormat, 1, line, 1 ,1); gtk_widget_show (StreamFormat); //bEntropyCABAC line++; GtkWidget* label_EntropyCABAC = gtk_label_new(_("Entropy CABAC:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_EntropyCABAC), 1); gtk_label_set_yalign(GTK_LABEL(label_EntropyCABAC), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_EntropyCABAC), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_EntropyCABAC, 0, line, 1, 1); gtk_widget_show (label_EntropyCABAC); EntropyCABAC = gtk_combo_box_text_new(); //TODO: check for min and max values gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(EntropyCABAC), _("CAVLC")); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(EntropyCABAC), _("CABAC")); uint8_t entropycabac = h264_config_probe_req->bEntropyCABAC & 0x01; int entropycabac_index = entropycabac; gtk_combo_box_set_active(GTK_COMBO_BOX(EntropyCABAC), entropycabac_index); gtk_grid_attach (GTK_GRID(h264_controls_grid), EntropyCABAC, 1, line, 1 ,1); gtk_widget_show (EntropyCABAC); //bTimestamp line++; Timestamp = gtk_check_button_new_with_label (_("Picture timing SEI")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(Timestamp),((h264_config_probe_req->bTimestamp & 0x01) > 0)); gtk_grid_attach (GTK_GRID(h264_controls_grid), Timestamp, 1, line, 1 ,1); gtk_widget_show (Timestamp); //bNumOfReorderFrames line++; GtkWidget* label_NumOfReorderFrames = gtk_label_new(_("B Frames:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_NumOfReorderFrames), 1); gtk_label_set_yalign(GTK_LABEL(label_NumOfReorderFrames), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_NumOfReorderFrames), 1, 0.5); #endif gtk_grid_attach (GTK_GRID((h264_controls_grid)), label_NumOfReorderFrames, 0, line, 1, 1); gtk_widget_show (label_NumOfReorderFrames); cur_flags = h264_config_probe_req->bNumOfReorderFrames & 0x000000FF; max_flags = config_probe_max.bNumOfReorderFrames & 0x000000FF; min_flags = config_probe_min.bNumOfReorderFrames & 0x000000FF; GtkAdjustment *adjustment10 = gtk_adjustment_new ( cur_flags, min_flags, max_flags, 1, 10, 0); NumOfReorderFrames = gtk_spin_button_new(adjustment10, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(NumOfReorderFrames), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), NumOfReorderFrames, 1, line, 1 ,1); gtk_widget_show (NumOfReorderFrames); //bPreviewFlipped line++; PreviewFlipped = gtk_check_button_new_with_label (_("Preview Flipped")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(PreviewFlipped),((h264_config_probe_req->bPreviewFlipped & 0x01) > 0)); gtk_grid_attach (GTK_GRID(h264_controls_grid), PreviewFlipped, 1, line, 1 ,1); gtk_widget_show (PreviewFlipped); //bView line++; GtkWidget* label_View = gtk_label_new(_("Additional MVC Views:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_View), 1); gtk_label_set_yalign(GTK_LABEL(label_View), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_View), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_View, 0, line, 1, 1); gtk_widget_show (label_View); cur_flags = h264_config_probe_req->bView & 0x000000FF; max_flags = config_probe_max.bView & 0x000000FF; min_flags = config_probe_min.bView & 0x000000FF; GtkAdjustment *adjustment11 = gtk_adjustment_new ( cur_flags, min_flags, max_flags, 1, 10, 0); View = gtk_spin_button_new(adjustment11, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(View), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), View, 1, line, 1 ,1); gtk_widget_show (View); //bStreamID line++; GtkWidget* label_StreamID = gtk_label_new(_("Simulcast stream index:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_StreamID), 1); gtk_label_set_yalign(GTK_LABEL(label_StreamID), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_StreamID), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_StreamID, 0, line, 1, 1); gtk_widget_show (label_StreamID); cur_flags = h264_config_probe_req->bStreamID & 0x000000FF; max_flags = config_probe_max.bStreamID & 0x000000FF; min_flags = config_probe_min.bStreamID & 0x000000FF; GtkAdjustment *adjustment12 = gtk_adjustment_new ( cur_flags, min_flags, max_flags, 1, 10, 0); StreamID = gtk_spin_button_new(adjustment12, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(StreamID), TRUE); gtk_grid_attach (GTK_GRID((h264_controls_grid)), StreamID, 1, line, 1 ,1); gtk_widget_show (StreamID); //bSpatialLayerRatio line++; GtkWidget* label_SpatialLayerRatio = gtk_label_new(_("Spatial Layer Ratio:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_SpatialLayerRatio), 1); gtk_label_set_yalign(GTK_LABEL(label_SpatialLayerRatio), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_SpatialLayerRatio), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_SpatialLayerRatio, 0, line, 1, 1); gtk_widget_show (label_SpatialLayerRatio); cur_flags = h264_config_probe_req->bSpatialLayerRatio & 0x000000FF; max_flags = config_probe_max.bSpatialLayerRatio & 0x000000FF; min_flags = config_probe_min.bSpatialLayerRatio & 0x000000FF; gdouble cur = (gdouble) ((cur_flags & 0x000000F0)>>4) + (gdouble)((cur_flags & 0x0000000F)/16); gdouble min = (gdouble) ((min_flags & 0x000000F0)>>4) + (gdouble)((min_flags & 0x0000000F)/16); gdouble max = (gdouble) ((max_flags & 0x000000F0)>>4) + (gdouble)((max_flags & 0x0000000F)/16); GtkAdjustment *adjustment13 = gtk_adjustment_new ( cur, min, max, 0.1, 1, 1); SpatialLayerRatio = gtk_spin_button_new(adjustment13, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(SpatialLayerRatio), TRUE); gtk_grid_attach (GTK_GRID(h264_controls_grid), SpatialLayerRatio, 1, line, 1 ,1); gtk_widget_show (SpatialLayerRatio); //wLeakyBucketSize line++; GtkWidget* label_LeakyBucketSize = gtk_label_new(_("Leaky Bucket Size (ms):")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_LeakyBucketSize), 1); gtk_label_set_yalign(GTK_LABEL(label_LeakyBucketSize), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_LeakyBucketSize), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(h264_controls_grid), label_LeakyBucketSize, 0, line, 1, 1); gtk_widget_show (label_LeakyBucketSize); cur_flags = h264_config_probe_req->wLeakyBucketSize; max_flags = config_probe_max.wLeakyBucketSize; min_flags = config_probe_min.wLeakyBucketSize; GtkAdjustment *adjustment14 = gtk_adjustment_new ( cur_flags, min_flags, max_flags, 1, 10, 0); LeakyBucketSize = gtk_spin_button_new(adjustment14, 1, 0); gtk_editable_set_editable(GTK_EDITABLE(LeakyBucketSize), TRUE); gtk_grid_attach (GTK_GRID((h264_controls_grid)), LeakyBucketSize, 1, line, 1 ,1); gtk_widget_show (LeakyBucketSize); //PROBE COMMIT buttons line++; //encoder reset GtkWidget *reset_button = gtk_button_new_with_label(_("Encoder Reset")); g_signal_connect (GTK_BUTTON(reset_button), "clicked", G_CALLBACK (h264_reset_button_clicked), NULL); gtk_grid_attach (GTK_GRID((h264_controls_grid)), reset_button, 0, line, 1 ,1); gtk_widget_show(reset_button); /* GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); g_signal_connect (GTK_BUTTON(probe_button), "clicked", G_CALLBACK (h264_probe_button_clicked), all_data); gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); gtk_widget_show(probe_button); */ GtkWidget *commit_button = gtk_button_new_with_label(_("COMMIT")); g_signal_connect (GTK_BUTTON(commit_button), "clicked", G_CALLBACK (h264_commit_button_clicked), NULL); gtk_grid_attach (GTK_GRID((h264_controls_grid)), commit_button, 1, line, 1 ,1); gtk_widget_show(commit_button); gtk_widget_show(h264_controls_grid); /*add control grid to parent container*/ gtk_container_add(GTK_CONTAINER(parent), h264_controls_grid); return 0; } guvcview-2.0.2+debian/guvcview/gui_gtk3_menu.c000066400000000000000000000256301256377215300213540ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" extern int debug_level; extern int is_control_panel; /* * attach top menu widget * args: * parent - menu parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_menu(GtkWidget *parent) { /*assertions*/ assert(parent != NULL); GtkWidget *menubar = gtk_menu_bar_new(); gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), GTK_PACK_DIRECTION_LTR); GtkWidget *controls_menu = gtk_menu_new(); GtkWidget *controls_top = gtk_menu_item_new_with_label(_("Settings")); GtkWidget *controls_load = gtk_menu_item_new_with_label(_("Load Profile")); GtkWidget *controls_save = gtk_menu_item_new_with_label(_("Save Profile")); GtkWidget *controls_default = gtk_menu_item_new_with_label(_("Hardware Defaults")); gtk_widget_show (controls_top); gtk_widget_show (controls_load); gtk_widget_show (controls_save); gtk_widget_show (controls_default); GtkWidget *camera_button_menu = gtk_menu_new(); GtkWidget *camera_button_top = gtk_menu_item_new_with_label(_("Camera Button")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(camera_button_top), camera_button_menu); GSList *camera_button_group = NULL; GtkWidget *def_image = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Image")); g_object_set_data (G_OBJECT (def_image), "camera_default", GINT_TO_POINTER(0)); gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_image); camera_button_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (def_image)); GtkWidget *def_video = gtk_radio_menu_item_new_with_label(camera_button_group, _("Capture Video")); g_object_set_data (G_OBJECT (def_video), "camera_default", GINT_TO_POINTER(1)); gtk_menu_shell_append(GTK_MENU_SHELL(camera_button_menu), def_video); gtk_widget_show (camera_button_top); gtk_widget_show (camera_button_menu); gtk_widget_show (def_image); gtk_widget_show (def_video); /*default camera button action*/ if (get_default_camera_button_action() == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_image), TRUE); else gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (def_video), TRUE); g_signal_connect (GTK_RADIO_MENU_ITEM(def_image), "toggled", G_CALLBACK (camera_button_menu_changed), NULL); g_signal_connect (GTK_RADIO_MENU_ITEM(def_video), "toggled", G_CALLBACK (camera_button_menu_changed), NULL); /* profile events*/ g_object_set_data (G_OBJECT (controls_save), "profile_dialog", GINT_TO_POINTER(1)); g_signal_connect (GTK_MENU_ITEM(controls_save), "activate", G_CALLBACK (controls_profile_clicked), NULL); g_object_set_data (G_OBJECT (controls_load), "profile_dialog", GINT_TO_POINTER(0)); g_signal_connect (GTK_MENU_ITEM(controls_load), "activate", G_CALLBACK (controls_profile_clicked), NULL); g_signal_connect (GTK_MENU_ITEM(controls_default), "activate", G_CALLBACK (control_defaults_clicked), NULL); gtk_menu_item_set_submenu(GTK_MENU_ITEM(controls_top), controls_menu); gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_load); gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_save); gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), controls_default); gtk_menu_shell_append(GTK_MENU_SHELL(controls_menu), camera_button_top); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), controls_top); /*control panel mode exclusions */ if(!is_control_panel) { /*photo menu*/ GtkWidget *photo_menu = gtk_menu_new(); GtkWidget *menu_photo_top = gtk_menu_item_new_with_label(_("Photo")); GtkWidget *photo_file = gtk_menu_item_new_with_label(_("File")); GtkWidget *photo_sufix = gtk_check_menu_item_new_with_label(_("Increment Filename")); gtk_widget_show (menu_photo_top); gtk_widget_show (photo_file); gtk_widget_show (photo_sufix); g_signal_connect (GTK_MENU_ITEM(photo_file), "activate", G_CALLBACK (photo_file_clicked), NULL); /** add callback to Append sufix */ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (photo_sufix), (get_photo_sufix_flag() > 0)); g_signal_connect (GTK_CHECK_MENU_ITEM(photo_sufix), "toggled", G_CALLBACK (photo_sufix_toggled), NULL); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_photo_top), photo_menu); gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_file); gtk_menu_shell_append(GTK_MENU_SHELL(photo_menu), photo_sufix); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menu_photo_top); /*video menu*/ GtkWidget *video_menu = gtk_menu_new(); GtkWidget *menu_video_top = gtk_menu_item_new_with_label(_("Video")); GtkWidget *video_file = gtk_menu_item_new_with_label(_("File")); GtkWidget *video_sufix = gtk_check_menu_item_new_with_label(_("Increment Filename")); gtk_widget_show (menu_video_top); gtk_widget_show (video_file); gtk_widget_show (video_sufix); g_signal_connect (GTK_MENU_ITEM(video_file), "activate", G_CALLBACK (video_file_clicked), NULL); /** add callback to Append sufix */ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (video_sufix), get_video_sufix_flag() > 0); g_signal_connect (GTK_CHECK_MENU_ITEM(video_sufix), "toggled", G_CALLBACK (video_sufix_toggled), NULL); GtkWidget *video_codec_menu = gtk_menu_new(); GtkWidget *video_codec_top = gtk_menu_item_new_with_label(_("Video Codec")); gtk_widget_show (video_codec_top); gtk_menu_item_set_submenu(GTK_MENU_ITEM(video_codec_top), video_codec_menu); /*Add codecs to submenu*/ GSList *vgroup = NULL; int num_vcodecs = encoder_get_valid_video_codecs(); int vcodec_ind =0; for (vcodec_ind =0; vcodec_ind < num_vcodecs; vcodec_ind++) { GtkWidget *item = gtk_radio_menu_item_new_with_label( vgroup, gettext(encoder_get_video_codec_description(vcodec_ind))); if (vcodec_ind == get_video_codec_ind()) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); } /*NOTE: GSList indexes (g_slist_index) are in reverse order: last inserted has index 0*/ vgroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); gtk_widget_show (item); gtk_menu_shell_append(GTK_MENU_SHELL(video_codec_menu), item); g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", G_CALLBACK (video_codec_changed), vgroup); } set_video_codec_group_list_gtk3(vgroup); GtkWidget *video_codec_prop = gtk_menu_item_new_with_label(_("Video Codec Properties")); gtk_widget_show (video_codec_prop); g_signal_connect (GTK_MENU_ITEM(video_codec_prop), "activate", G_CALLBACK (encoder_video_properties), NULL); GtkWidget *audio_codec_menu = gtk_menu_new(); GtkWidget *audio_codec_top = gtk_menu_item_new_with_label(_("Audio Codec")); gtk_widget_show (audio_codec_top); gtk_menu_item_set_submenu(GTK_MENU_ITEM(audio_codec_top), audio_codec_menu); /*Add codecs to submenu*/ GSList *agroup = NULL; int num_acodecs = encoder_get_valid_audio_codecs(); int acodec_ind = 0; for (acodec_ind = 0; acodec_ind < num_acodecs; acodec_ind++) { GtkWidget *item = gtk_radio_menu_item_new_with_label( agroup, gettext(encoder_get_audio_codec_description(acodec_ind))); if (acodec_ind == get_audio_codec_ind()) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); } /*NOTE: GSList indexes (g_slist_index) are in reverse order: last inserted has index 0*/ agroup = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); gtk_widget_show (item); gtk_menu_shell_append(GTK_MENU_SHELL(audio_codec_menu), item); g_signal_connect (GTK_RADIO_MENU_ITEM(item), "toggled", G_CALLBACK (audio_codec_changed), agroup); } set_audio_codec_group_list_gtk3(agroup); GtkWidget *audio_codec_prop = gtk_menu_item_new_with_label(_("Audio Codec Properties")); gtk_widget_show (audio_codec_prop); g_signal_connect (GTK_MENU_ITEM(audio_codec_prop), "activate", G_CALLBACK (encoder_audio_properties), NULL); gtk_menu_item_set_submenu(GTK_MENU_ITEM(video_codec_top), video_codec_menu); gtk_menu_item_set_submenu(GTK_MENU_ITEM(audio_codec_top), audio_codec_menu); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_video_top), video_menu); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_file); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_sufix); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_top); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), video_codec_prop); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_top); gtk_menu_shell_append(GTK_MENU_SHELL(video_menu), audio_codec_prop); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menu_video_top); } /*show the menu*/ gtk_widget_show (menubar); //gtk_container_set_resize_mode (GTK_CONTAINER(menubar), GTK_RESIZE_PARENT); /* Attach the menu to parent container*/ gtk_box_pack_start(GTK_BOX(parent), menubar, FALSE, TRUE, 2); return 0; } guvcview-2.0.2+debian/guvcview/gui_gtk3_v4l2ctrls.c000066400000000000000000000652401256377215300222500ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" extern int debug_level; extern int is_control_panel; /* * NULL terminated list won't work here * since we use realloc memory location will change */ static control_widgets_t *control_widgets_list = NULL; /*control widgets list*/ static int widget_list_size = 0; /*list size*/ /* * clean gtk3 control widgets list * args: * none * * asserts: * none * * returns: none */ void gui_clean_gtk3_control_widgets_list() { if(control_widgets_list) free(control_widgets_list); } /* * get gtk control widgets for control id * args: * id - v4l2 control id * * asserts: * none * * returns: pointer to control_widgets_t or null */ control_widgets_t *gui_gtk3_get_widgets_by_id(int id) { int i = 0; for(i = 0; i < widget_list_size; ++i ) { if(control_widgets_list[i].id == id) return &control_widgets_list[i]; } return NULL; } /* * attach v4l2 controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_v4l2ctrls(GtkWidget *parent) { /*assertions*/ assert(parent != NULL); if(debug_level > 1) printf("GUVCVIEW: attaching v4l2 controls\n"); GtkWidget *img_controls_grid = gtk_grid_new(); gtk_widget_show (img_controls_grid); gtk_grid_set_column_homogeneous (GTK_GRID(img_controls_grid), FALSE); gtk_widget_set_hexpand (img_controls_grid, TRUE); gtk_widget_set_halign (img_controls_grid, GTK_ALIGN_FILL); gtk_grid_set_row_spacing (GTK_GRID(img_controls_grid), 4); gtk_grid_set_column_spacing (GTK_GRID (img_controls_grid), 4); gtk_container_set_border_width (GTK_CONTAINER (img_controls_grid), 2); int i = 0; int n = 0; v4l2_ctrl_t *current = v4l2core_get_control_list(); for(; current != NULL; current = current->next, ++n) { if(current == NULL) { fprintf(stderr, "GUVCVIEW: ERROR (attach gtk3 controls) empty control in list\n"); break; } if(!is_control_panel && (current->control.id == V4L2_CID_FOCUS_LOGITECH || current->control.id == V4L2_CID_FOCUS_ABSOLUTE)) { ++n; /*add a virtual software autofocus control*/ } widget_list_size = n + 1; control_widgets_list = realloc(control_widgets_list, sizeof(control_widgets_t) * widget_list_size); if(control_widgets_list == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); exit(-1); } /*label*/ char *tmp; tmp = g_strdup_printf ("%s:", current->name); control_widgets_list[widget_list_size - 1].label = gtk_label_new (tmp); g_free(tmp); gtk_widget_show (control_widgets_list[widget_list_size - 1].label); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(control_widgets_list[widget_list_size - 1].label), 1); gtk_label_set_yalign(GTK_LABEL(control_widgets_list[widget_list_size - 1].label), 0.5); #else gtk_misc_set_alignment (GTK_MISC (control_widgets_list[widget_list_size - 1].label), 1, 0.5); #endif control_widgets_list[widget_list_size - 1].id = current->control.id; control_widgets_list[widget_list_size - 1].widget = NULL; control_widgets_list[widget_list_size - 1].widget2 = NULL; /*usually a spin button*/ switch (current->control.type) { case V4L2_CTRL_TYPE_INTEGER: switch (current->control.id) { //special cases case V4L2_CID_PAN_RELATIVE: case V4L2_CID_TILT_RELATIVE: { control_widgets_list[n].widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 1); GtkWidget *PanTilt1 = NULL; GtkWidget *PanTilt2 = NULL; if(current->control.id == V4L2_CID_PAN_RELATIVE) { PanTilt1 = gtk_button_new_with_label(_("Left")); PanTilt2 = gtk_button_new_with_label(_("Right")); } else { PanTilt1 = gtk_button_new_with_label(_("Down")); PanTilt2 = gtk_button_new_with_label(_("Up")); } gtk_widget_show (PanTilt1); gtk_widget_show (PanTilt2); gtk_box_pack_start(GTK_BOX(control_widgets_list[n].widget),PanTilt1,TRUE,TRUE,2); gtk_box_pack_start(GTK_BOX(control_widgets_list[n].widget),PanTilt2,TRUE,TRUE,2); g_object_set_data (G_OBJECT (PanTilt1), "control_info", GINT_TO_POINTER(current->control.id)); g_object_set_data (G_OBJECT (PanTilt2), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signals*/ g_signal_connect (GTK_BUTTON(PanTilt1), "clicked", G_CALLBACK (button_PanTilt1_clicked), NULL); g_signal_connect (GTK_BUTTON(PanTilt2), "clicked", G_CALLBACK (button_PanTilt2_clicked), NULL); gtk_widget_show (control_widgets_list[n].widget); control_widgets_list[n].widget2 = gtk_spin_button_new_with_range(-256, 256, 64); gtk_editable_set_editable(GTK_EDITABLE(control_widgets_list[n].widget2), TRUE); if(current->control.id == V4L2_CID_PAN_RELATIVE) gtk_spin_button_set_value (GTK_SPIN_BUTTON(control_widgets_list[n].widget2), v4l2core_get_pan_step()); else gtk_spin_button_set_value (GTK_SPIN_BUTTON(control_widgets_list[n].widget2),v4l2core_get_tilt_step()); /*connect signal*/ g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", GINT_TO_POINTER(current->control.id)); g_signal_connect(GTK_SPIN_BUTTON(control_widgets_list[n].widget2),"value-changed", G_CALLBACK (pan_tilt_step_changed), NULL); gtk_widget_show (control_widgets_list[n].widget2); break; } case V4L2_CID_PAN_RESET: case V4L2_CID_TILT_RESET: { control_widgets_list[n].widget = gtk_button_new_with_label(" "); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signal*/ g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget), "clicked", G_CALLBACK (button_clicked), NULL); break; }; case V4L2_CID_LED1_MODE_LOGITECH: { char* LEDMenu[4] = {_("Off"),_("On"),_("Blinking"),_("Auto")}; /*turn it into a menu control*/ if(!current->menu) current->menu = calloc(4+1, sizeof(struct v4l2_querymenu)); else current->menu = realloc(current->menu, (4+1) * sizeof(struct v4l2_querymenu)); if(current->menu == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); exit(-1); } current->menu[0].id = current->control.id; current->menu[0].index = 0; current->menu[0].name[0] = 'N'; /*just set something here*/ current->menu[1].id = current->control.id; current->menu[1].index = 1; current->menu[1].name[0] = 'O'; current->menu[2].id = current->control.id; current->menu[2].index = 2; current->menu[2].name[0] = 'B'; current->menu[3].id = current->control.id; current->menu[3].index = 3; current->menu[3].name[0] = 'A'; current->menu[4].id = current->control.id; current->menu[4].index = current->control.maximum+1; current->menu[4].name[0] = '\0'; int j = 0; int def = 0; control_widgets_list[n].widget = gtk_combo_box_text_new (); for (j = 0; current->menu[j].index <= current->control.maximum; j++) { gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), (char *) LEDMenu[j]); if(current->value == current->menu[j].index) def = j; } gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signal*/ g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", G_CALLBACK (combo_changed), NULL); break; } case V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH: { /*turn it into a menu control*/ char* BITSMenu[2] = {_("8 bit"),_("12 bit")}; /*turn it into a menu control*/ if(!current->menu) current->menu = calloc(2+1, sizeof(struct v4l2_querymenu)); else current->menu = realloc(current->menu, (2+1) * sizeof(struct v4l2_querymenu)); if(current->menu == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (gui_attach_gtk3_v4l2ctrls): %s\n", strerror(errno)); exit(-1); } current->menu[0].id = current->control.id; current->menu[0].index = 0; current->menu[0].name[0] = 'o'; /*just set something here*/ current->menu[1].id = current->control.id; current->menu[1].index = 1; current->menu[1].name[0] = 'd'; current->menu[2].id = current->control.id; current->menu[2].index = 2; current->menu[2].name[0] = '\0'; int j = 0; int def = 0; control_widgets_list[n].widget = gtk_combo_box_text_new (); for (j = 0; current->menu[j].index <= current->control.maximum; j++) { //if (debug_level > 0) // printf("GUVCVIEW: adding menu entry %d: %d, %s\n",j, current->menu[j].index, current->menu[j].name); gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), (char *) BITSMenu[j]); if(current->value == current->menu[j].index) def = j; } gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signal*/ g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", G_CALLBACK (combo_changed), NULL); break; } case V4L2_CID_FOCUS_LOGITECH: case V4L2_CID_FOCUS_ABSOLUTE: if(!is_control_panel) { /*add a virtual control for software autofocus*/ control_widgets_list[n-1].widget = gtk_check_button_new_with_label (_("Auto Focus (continuous)")); control_widgets_list[n-1].widget2 = gtk_button_new_with_label (_("set Focus")); gtk_widget_show (control_widgets_list[n-1].widget); gtk_widget_show (control_widgets_list[n-1].widget2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (control_widgets_list[n-1].widget), FALSE); g_signal_connect (G_OBJECT (control_widgets_list[n-1].widget), "toggled", G_CALLBACK (autofocus_changed), NULL); g_signal_connect (G_OBJECT (control_widgets_list[n-1].widget2), "clicked", G_CALLBACK (setfocus_clicked), NULL); gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n-1].widget, 1, i, 1 , 1); gtk_widget_set_halign (control_widgets_list[n-1].widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand (control_widgets_list[n-1].widget, TRUE); gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n-1].widget2, 2, i, 1 , 1); i++; } default: /*standard case - hscale + spin*/ { /* check for valid range */ if((current->control.maximum > current->control.minimum) && (current->control.step != 0)) { GtkAdjustment *adjustment = gtk_adjustment_new ( current->value, current->control.minimum, current->control.maximum, current->control.step, current->control.step*10, 0); control_widgets_list[n].widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_scale_set_draw_value (GTK_SCALE (control_widgets_list[n].widget), FALSE); gtk_scale_set_digits(GTK_SCALE(control_widgets_list[n].widget), 0); gtk_widget_show (control_widgets_list[n].widget); control_widgets_list[n].widget2= gtk_spin_button_new(adjustment, current->control.step, 0); gtk_editable_set_editable(GTK_EDITABLE(control_widgets_list[n].widget2),TRUE); gtk_widget_show (control_widgets_list[n].widget2); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", GINT_TO_POINTER(current->control.id)); if(!is_control_panel && (current->control.id == V4L2_CID_FOCUS_LOGITECH || current->control.id == V4L2_CID_FOCUS_ABSOLUTE)) { g_object_set_data (G_OBJECT (control_widgets_list[n-1].widget), "control_entry", control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n-1].widget), "control2_entry", control_widgets_list[n].widget2); } /*connect signals*/ g_signal_connect (GTK_SCALE(control_widgets_list[n].widget), "value-changed", G_CALLBACK (slider_changed), NULL); g_signal_connect(GTK_SPIN_BUTTON(control_widgets_list[n].widget2),"value-changed", G_CALLBACK (spin_changed), NULL); } else fprintf(stderr, "GUVCVIEW: (Invalid range) [MAX <= MIN] for control id: 0x%08x \n", current->control.id); break; } } break; #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: widget = gtk_entry_new(); gtk_entry_set_max_length(control_widgets_list[n].widget, current->control.maximum); //control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); gtk_widget_show (control_widgets_list[n].widget); gtk_widget_show (control_widgets_list[n].widget2); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", GINT_TO_POINTER(current->control.id)); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", widget); /*connect signal*/ g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", G_CALLBACK (int64_button_clicked), NULL); break; #endif #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: control_widgets_list[n].widget = gtk_entry_new(); gtk_entry_set_max_length(control_widgets_list[n].widget, current->control.maximum); //control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); gtk_widget_show (control_widgets_list[n].widget); gtk_widget_show (control_widgets_list[n].widget2); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", GINT_TO_POINTER(current->control.id)); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", widget); /*connect signal*/ g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", G_CALLBACK (string_button_clicked), NULL); break; #endif #ifdef V4L2_CTRL_TYPE_BITMASK case V4L2_CTRL_TYPE_BITMASK: control_widgets_list[n].widget = gtk_entry_new(); //control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); control_widgets_list[n].widget2 = gtk_button_new_with_mnemonic (_("_Apply")); gtk_widget_show (control_widgets_list[n].widget); gtk_widget_show (control_widgets_list[n].widget2); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_info", GINT_TO_POINTER(current->control.id)); g_object_set_data (G_OBJECT (control_widgets_list[n].widget2), "control_entry", widget); g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget2), "clicked", G_CALLBACK (bitmask_button_clicked), NULL); break; #endif #ifdef V4L2_CTRL_TYPE_INTEGER_MENU case V4L2_CTRL_TYPE_INTEGER_MENU: #endif case V4L2_CTRL_TYPE_MENU: if(current->menu) { int j = 0; int def = 0; control_widgets_list[n].widget = gtk_combo_box_text_new (); for (j = 0; current->menu[j].index <= current->control.maximum; j++) { if(current->control.type == V4L2_CTRL_TYPE_MENU) { gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), (char *) current->menu_entry[j]); } #ifdef V4L2_CTRL_TYPE_INTEGER_MENU else { char buffer[30]="0"; snprintf(buffer, "%" PRIu64 "", 29, current->menu[j].value); gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget), buffer); } #endif if(current->value == current->menu[j].index) def = j; } gtk_combo_box_set_active (GTK_COMBO_BOX(control_widgets_list[n].widget), def); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signal*/ g_signal_connect (GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget), "changed", G_CALLBACK (combo_changed), NULL); } break; case V4L2_CTRL_TYPE_BUTTON: control_widgets_list[n].widget = gtk_button_new_with_label(" "); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); g_signal_connect (GTK_BUTTON(control_widgets_list[n].widget), "clicked", G_CALLBACK (button_clicked), NULL); break; case V4L2_CTRL_TYPE_BOOLEAN: if(current->control.id ==V4L2_CID_DISABLE_PROCESSING_LOGITECH) { control_widgets_list[n].widget2 = gtk_combo_box_text_new (); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), "GBGB... | RGRG..."); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), "GRGR... | BGBG..."); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), "BGBG... | GRGR..."); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(control_widgets_list[n].widget2), "RGRG... | GBGB..."); v4l2core_set_bayer_pix_order(0); gtk_combo_box_set_active(GTK_COMBO_BOX(control_widgets_list[n].widget2), v4l2core_get_bayer_pix_order()); gtk_widget_show (control_widgets_list[n].widget2); /*connect signal*/ g_signal_connect (GTK_COMBO_BOX_TEXT (control_widgets_list[n].widget2), "changed", G_CALLBACK (bayer_pix_ord_changed), NULL); uint8_t isbayer = (current->value ? TRUE : FALSE); v4l2core_set_isbayer(isbayer); } control_widgets_list[n].widget = gtk_check_button_new(); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (control_widgets_list[n].widget), current->value ? TRUE : FALSE); gtk_widget_show (control_widgets_list[n].widget); g_object_set_data (G_OBJECT (control_widgets_list[n].widget), "control_info", GINT_TO_POINTER(current->control.id)); /*connect signal*/ g_signal_connect (GTK_TOGGLE_BUTTON(control_widgets_list[n].widget), "toggled", G_CALLBACK (check_changed), NULL); break; default: printf("control[%d]:(unknown - 0x%x) 0x%x '%s'\n",i ,current->control.type, current->control.id, current->control.name); break; } /*attach widgets to grid*/ gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].label, 0, i, 1 , 1); if(control_widgets_list[n].widget) { gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].widget, 1, i, 1 , 1); gtk_widget_set_halign (control_widgets_list[n].widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand (control_widgets_list[n].widget, TRUE); } if(control_widgets_list[n].widget2) { gtk_grid_attach(GTK_GRID(img_controls_grid), control_widgets_list[n].widget2, 2, i, 1 , 1); } i++; } /*add control grid to parent container*/ gtk_container_add(GTK_CONTAINER(parent), img_controls_grid); gui_gtk3_update_controls_state(); return 0; } /* * update the controls widgets state * args: * none * * asserts: * none * * returns: none */ void gui_gtk3_update_controls_state() { v4l2_ctrl_t *current = v4l2core_get_control_list(); for(; current != NULL; current = current->next) { if(current == NULL) { fprintf(stderr, "GUVCVIEW: ERROR (update controls state) empty control in list\n"); break; } control_widgets_t *cur_widget = gui_gtk3_get_widgets_by_id(current->control.id); if(!cur_widget) { fprintf(stderr, "GUVCVIEW: (update widget state): control %x doesn't have a widget set\n", current->control.id); continue; } /*update controls values*/ switch(current->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: { char *text_input = g_strescape(current->string, ""); gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); g_free(text_input); break; } #endif case V4L2_CTRL_TYPE_BOOLEAN: /*disable widget signals*/ g_signal_handlers_block_by_func(GTK_TOGGLE_BUTTON(cur_widget->widget), G_CALLBACK (check_changed), NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cur_widget->widget), current->value ? TRUE : FALSE); /*enable widget signals*/ g_signal_handlers_unblock_by_func(GTK_TOGGLE_BUTTON(cur_widget->widget), G_CALLBACK (check_changed), NULL); break; #ifdef V4L2_CTRL_TYPE_BITMASK case V4L2_CTRL_TYPE_BITMASK: { char *text_input = g_strdup_printf("0x%x", current->value); gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); g_free(text_input); break; } #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: { char *text_input = g_strdup_printf("0x%" PRIx64 "", c->value64); gtk_entry_set_text (GTK_ENTRY(cur_widget->widget), text_input); g_free(text_input); break; } #endif case V4L2_CTRL_TYPE_INTEGER: if( current->control.id != V4L2_CID_PAN_RELATIVE && current->control.id != V4L2_CID_TILT_RELATIVE && current->control.id != V4L2_CID_PAN_RESET && current->control.id != V4L2_CID_TILT_RESET && current->control.id != V4L2_CID_LED1_MODE_LOGITECH && current->control.id != V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH ) { /*disable widget signals*/ g_signal_handlers_block_by_func(GTK_SCALE (cur_widget->widget), G_CALLBACK (slider_changed), NULL); gtk_range_set_value (GTK_RANGE (cur_widget->widget), current->value); /*enable widget signals*/ g_signal_handlers_unblock_by_func(GTK_SCALE (cur_widget->widget), G_CALLBACK (slider_changed), NULL); if(cur_widget->widget2) { /*disable widget signals*/ g_signal_handlers_block_by_func(GTK_SPIN_BUTTON(cur_widget->widget2), G_CALLBACK (spin_changed), NULL); gtk_spin_button_set_value (GTK_SPIN_BUTTON(cur_widget->widget2), current->value); /*enable widget signals*/ g_signal_handlers_unblock_by_func(GTK_SPIN_BUTTON(cur_widget->widget2), G_CALLBACK (spin_changed), NULL); } } break; #ifdef V4L2_CTRL_TYPE_INTEGER_MENU case V4L2_CTRL_TYPE_INTEGER_MENU: #endif case V4L2_CTRL_TYPE_MENU: { /*disable widget signals*/ g_signal_handlers_block_by_func(GTK_COMBO_BOX_TEXT(cur_widget->widget), G_CALLBACK (combo_changed), NULL); /*get new index*/ int j = 0; int def = 0; for (j = 0; current->menu[j].index <= current->control.maximum; j++) { if(current->value == current->menu[j].index) def = j; } gtk_combo_box_set_active(GTK_COMBO_BOX(cur_widget->widget), def); /*enable widget signals*/ g_signal_handlers_unblock_by_func(GTK_COMBO_BOX_TEXT(cur_widget->widget), G_CALLBACK (combo_changed), NULL); break; } default: break; } /*update flags (enable disable)*/ if((current->control.flags & V4L2_CTRL_FLAG_GRABBED) || (current->control.flags & V4L2_CTRL_FLAG_DISABLED)) { if(cur_widget->label) gtk_widget_set_sensitive (cur_widget->label, FALSE); if(cur_widget->widget) gtk_widget_set_sensitive (cur_widget->widget, FALSE); if(cur_widget->widget2) gtk_widget_set_sensitive (cur_widget->widget2, FALSE); } else { if(cur_widget->label) gtk_widget_set_sensitive (cur_widget->label, TRUE); if(cur_widget->widget) gtk_widget_set_sensitive (cur_widget->widget, TRUE); if(cur_widget->widget2) gtk_widget_set_sensitive (cur_widget->widget2, TRUE); } } } guvcview-2.0.2+debian/guvcview/gui_gtk3_videoctrls.c000066400000000000000000000415401256377215300225640ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gui_gtk3.h" #include "gui_gtk3_callbacks.h" #include "gui.h" /*add this last to avoid redefining _() and N_()*/ #include "gview.h" #include "gviewrender.h" #include "video_capture.h" extern int debug_level; /* * attach v4l2 video controls tab widget * args: * parent - tab parent widget * * asserts: * parent is not null * * returns: error code (0 -OK) */ int gui_attach_gtk3_videoctrls(GtkWidget *parent) { /*assertions*/ assert(parent != NULL); if(debug_level > 1) printf("GUVCVIEW: attaching video controls\n"); int format_index = v4l2core_get_frame_format_index(v4l2core_get_requested_frame_format()); if(format_index < 0) { gui_error("Guvcview error", "invalid pixel format", 0); printf("GUVCVIEW: invalid pixel format\n"); } int resolu_index = v4l2core_get_format_resolution_index( format_index, v4l2core_get_frame_width(), v4l2core_get_frame_height()); if(resolu_index < 0) { gui_error("Guvcview error", "invalid resolution index", 0); printf("GUVCVIEW: invalid resolution index\n"); } GtkWidget *video_controls_grid = gtk_grid_new(); gtk_widget_show (video_controls_grid); gtk_grid_set_column_homogeneous (GTK_GRID(video_controls_grid), FALSE); gtk_widget_set_hexpand (video_controls_grid, TRUE); gtk_widget_set_halign (video_controls_grid, GTK_ALIGN_FILL); gtk_grid_set_row_spacing (GTK_GRID(video_controls_grid), 4); gtk_grid_set_column_spacing (GTK_GRID (video_controls_grid), 4); gtk_container_set_border_width (GTK_CONTAINER (video_controls_grid), 2); char temp_str[20]; int line = 0; int i =0; /*---- Devices ----*/ GtkWidget *label_Device = gtk_label_new(_("Device:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Device), 1); gtk_label_set_yalign(GTK_LABEL(label_Device), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Device), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(video_controls_grid), label_Device, 0, line, 1, 1); gtk_widget_show (label_Device); set_wgtDevices_gtk3(gtk_combo_box_text_new()); gtk_widget_set_halign (get_wgtDevices_gtk3(), GTK_ALIGN_FILL); gtk_widget_set_hexpand (get_wgtDevices_gtk3(), TRUE); v4l2_device_list *device_list = v4l2core_get_device_list(); if (device_list->num_devices < 1) { /*use current*/ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), v4l2core_get_videodevice()); gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),0); } else { for(i = 0; i < (device_list->num_devices); i++) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), device_list->list_devices[i].name); if(device_list->list_devices[i].current) gtk_combo_box_set_active(GTK_COMBO_BOX(get_wgtDevices_gtk3()),i); } } gtk_grid_attach (GTK_GRID(video_controls_grid), get_wgtDevices_gtk3(), 1, line, 1 ,1); gtk_widget_show (get_wgtDevices_gtk3()); g_signal_connect (GTK_COMBO_BOX_TEXT(get_wgtDevices_gtk3()), "changed", G_CALLBACK (devices_changed), NULL); /*---- Frame Rate ----*/ line++; GtkWidget *label_FPS = gtk_label_new(_("Frame Rate:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_FPS), 1); gtk_label_set_yalign(GTK_LABEL(label_FPS), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_FPS), 1, 0.5); #endif gtk_widget_show (label_FPS); gtk_grid_attach (GTK_GRID(video_controls_grid), label_FPS, 0, line, 1, 1); GtkWidget *wgtFrameRate = gtk_combo_box_text_new (); gtk_widget_set_halign (wgtFrameRate, GTK_ALIGN_FILL); gtk_widget_set_hexpand (wgtFrameRate, TRUE); gtk_widget_show (wgtFrameRate); gtk_widget_set_sensitive (wgtFrameRate, TRUE); int deffps=0; v4l2_stream_formats_t *list_stream_formats = v4l2core_get_formats_list(); if (debug_level > 0) printf("GUVCVIEW: frame rates of resolution index %d = %d \n", resolu_index+1, list_stream_formats[format_index].list_stream_cap[resolu_index].numb_frates); for ( i = 0 ; i < list_stream_formats[format_index].list_stream_cap[resolu_index].numb_frates ; ++i) { g_snprintf( temp_str, 18, "%i/%i fps", list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[i], list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[i]); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtFrameRate), temp_str); if (( v4l2core_get_fps_num() == list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[i]) && ( v4l2core_get_fps_denom() == list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[i])) deffps=i;//set selected } gtk_grid_attach (GTK_GRID(video_controls_grid), wgtFrameRate, 1, line, 1 ,1); gtk_combo_box_set_active(GTK_COMBO_BOX(wgtFrameRate), deffps); if (deffps==0) { if (list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom) v4l2core_define_fps(-1, list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_denom[0]); if (list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num) v4l2core_define_fps(list_stream_formats[format_index].list_stream_cap[resolu_index].framerate_num[0], -1); } g_signal_connect (GTK_COMBO_BOX_TEXT(wgtFrameRate), "changed", G_CALLBACK (frame_rate_changed), NULL); /*try to sync the device fps (capture thread must have started by now)*/ v4l2core_request_framerate_update (); /*---- Resolution ----*/ line++; GtkWidget *label_Resol = gtk_label_new(_("Resolution:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_Resol), 1); gtk_label_set_yalign(GTK_LABEL(label_Resol), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_Resol), 1, 0.5); #endif gtk_grid_attach (GTK_GRID(video_controls_grid), label_Resol, 0, line, 1, 1); gtk_widget_show (label_Resol); GtkWidget *wgtResolution = gtk_combo_box_text_new (); gtk_widget_set_halign (wgtResolution, GTK_ALIGN_FILL); gtk_widget_set_hexpand (wgtResolution, TRUE); gtk_widget_show (wgtResolution); gtk_widget_set_sensitive (wgtResolution, TRUE); int defres=0; if (debug_level > 0) printf("GUVCVIEW: resolutions of format(%d) = %d \n", format_index+1, list_stream_formats[format_index].numb_res); for(i = 0 ; i < list_stream_formats[format_index].numb_res ; i++) { if (list_stream_formats[format_index].list_stream_cap[i].width > 0) { g_snprintf( temp_str, 18, "%ix%i", list_stream_formats[format_index].list_stream_cap[i].width, list_stream_formats[format_index].list_stream_cap[i].height); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtResolution), temp_str); if ((v4l2core_get_frame_width() == list_stream_formats[format_index].list_stream_cap[i].width) && (v4l2core_get_frame_height() == list_stream_formats[format_index].list_stream_cap[i].height)) defres=i;//set selected resolution index } } gtk_combo_box_set_active(GTK_COMBO_BOX(wgtResolution), defres); gtk_grid_attach (GTK_GRID(video_controls_grid), wgtResolution, 1, line, 1 ,1); g_object_set_data (G_OBJECT (wgtResolution), "control_fps", wgtFrameRate); g_signal_connect (wgtResolution, "changed", G_CALLBACK (resolution_changed), NULL); /*---- Input Format ----*/ line++; GtkWidget *label_InpType = gtk_label_new(_("Camera Output:")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_InpType), 1); gtk_label_set_yalign(GTK_LABEL(label_InpType), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_InpType), 1, 0.5); #endif gtk_widget_show (label_InpType); gtk_grid_attach (GTK_GRID(video_controls_grid), label_InpType, 0, line, 1, 1); GtkWidget *wgtInpType= gtk_combo_box_text_new (); gtk_widget_set_halign (wgtInpType, GTK_ALIGN_FILL); gtk_widget_set_hexpand (wgtInpType, TRUE); gtk_widget_show (wgtInpType); gtk_widget_set_sensitive (wgtInpType, TRUE); int fmtind=0; for (fmtind=0; fmtind < v4l2core_get_number_formats(); fmtind++) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wgtInpType), list_stream_formats[fmtind].fourcc); if(v4l2core_get_requested_frame_format() == list_stream_formats[fmtind].format) gtk_combo_box_set_active(GTK_COMBO_BOX(wgtInpType), fmtind); /*set active*/ } gtk_grid_attach (GTK_GRID(video_controls_grid), wgtInpType, 1, line, 1 ,1); //g_object_set_data (G_OBJECT (wgtInpType), "control_fps", wgtFrameRate); g_object_set_data (G_OBJECT (wgtInpType), "control_resolution", wgtResolution); g_signal_connect (GTK_COMBO_BOX_TEXT(wgtInpType), "changed", G_CALLBACK (format_changed), NULL); /* ----- Filter controls -----*/ line++; GtkWidget *label_videoFilters = gtk_label_new(_("---- Video Filters ----")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_videoFilters), 0.5); gtk_label_set_yalign(GTK_LABEL(label_videoFilters), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_videoFilters), 0.5, 0.5); #endif gtk_grid_attach (GTK_GRID(video_controls_grid), label_videoFilters, 0, line, 3, 1); gtk_widget_show (label_videoFilters); /*filters grid*/ line++; GtkWidget *table_filt = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (table_filt), 4); gtk_grid_set_column_spacing (GTK_GRID (table_filt), 4); gtk_container_set_border_width (GTK_CONTAINER (table_filt), 4); gtk_widget_set_size_request (table_filt, -1, -1); gtk_widget_set_halign (table_filt, GTK_ALIGN_FILL); gtk_widget_set_hexpand (table_filt, TRUE); gtk_grid_attach (GTK_GRID(video_controls_grid), table_filt, 0, line, 3, 1); gtk_widget_show (table_filt); /* Mirror FX */ GtkWidget *FiltMirrorEnable = gtk_check_button_new_with_label (_(" Mirror")); g_object_set_data (G_OBJECT (FiltMirrorEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_MIRROR)); gtk_widget_set_halign (FiltMirrorEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltMirrorEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltMirrorEnable, 0, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMirrorEnable), (get_render_fx_mask() & REND_FX_YUV_MIRROR) > 0); gtk_widget_show (FiltMirrorEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltMirrorEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* Upturn FX */ GtkWidget *FiltUpturnEnable = gtk_check_button_new_with_label (_(" Invert")); g_object_set_data (G_OBJECT (FiltUpturnEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_UPTURN)); gtk_widget_set_halign (FiltUpturnEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltUpturnEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltUpturnEnable, 1, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltUpturnEnable), (get_render_fx_mask() & REND_FX_YUV_UPTURN) > 0); gtk_widget_show (FiltUpturnEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltUpturnEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* Negate FX */ GtkWidget *FiltNegateEnable = gtk_check_button_new_with_label (_(" Negative")); g_object_set_data (G_OBJECT (FiltNegateEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_NEGATE)); gtk_widget_set_halign (FiltNegateEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltNegateEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltNegateEnable, 2, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltNegateEnable), (get_render_fx_mask() & REND_FX_YUV_NEGATE) >0 ); gtk_widget_show (FiltNegateEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltNegateEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* Mono FX */ GtkWidget *FiltMonoEnable = gtk_check_button_new_with_label (_(" Mono")); g_object_set_data (G_OBJECT (FiltMonoEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_MONOCR)); gtk_widget_set_halign (FiltMonoEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltMonoEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltMonoEnable, 3, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltMonoEnable), (get_render_fx_mask() & REND_FX_YUV_MONOCR) > 0); gtk_widget_show (FiltMonoEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltMonoEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* Pieces FX */ GtkWidget *FiltPiecesEnable = gtk_check_button_new_with_label (_(" Pieces")); g_object_set_data (G_OBJECT (FiltPiecesEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_PIECES)); gtk_widget_set_halign (FiltPiecesEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltPiecesEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltPiecesEnable, 4, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltPiecesEnable), (get_render_fx_mask() & REND_FX_YUV_PIECES) > 0); gtk_widget_show (FiltPiecesEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltPiecesEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* Particles */ GtkWidget *FiltParticlesEnable = gtk_check_button_new_with_label (_(" Particles")); g_object_set_data (G_OBJECT (FiltParticlesEnable), "filt_info", GINT_TO_POINTER(REND_FX_YUV_PARTICLES)); gtk_widget_set_halign (FiltParticlesEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (FiltParticlesEnable, TRUE); gtk_grid_attach(GTK_GRID(table_filt), FiltParticlesEnable, 5, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FiltParticlesEnable), (get_render_fx_mask() & REND_FX_YUV_PARTICLES) > 0); gtk_widget_show (FiltParticlesEnable); g_signal_connect (GTK_CHECK_BUTTON(FiltParticlesEnable), "toggled", G_CALLBACK (render_fx_filter_changed), NULL); /* ----- OSD controls -----*/ line++; GtkWidget *label_osd = gtk_label_new(_("---- OSD ----")); #if GTK_VER_AT_LEAST(3,15) gtk_label_set_xalign(GTK_LABEL(label_osd), 0.5); gtk_label_set_yalign(GTK_LABEL(label_osd), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label_osd), 0.5, 0.5); #endif gtk_grid_attach (GTK_GRID(video_controls_grid), label_osd, 0, line, 3, 1); gtk_widget_show (label_osd); /*osd grid*/ line++; GtkWidget *table_osd = gtk_grid_new(); gtk_grid_set_row_spacing (GTK_GRID (table_osd), 4); gtk_grid_set_column_spacing (GTK_GRID (table_osd), 4); gtk_container_set_border_width (GTK_CONTAINER (table_osd), 4); gtk_widget_set_size_request (table_osd, -1, -1); gtk_widget_set_halign (table_osd, GTK_ALIGN_FILL); gtk_widget_set_hexpand (table_osd, TRUE); gtk_grid_attach (GTK_GRID(video_controls_grid), table_osd, 0, line, 3, 1); gtk_widget_show (table_osd); /* Crosshair OSD */ GtkWidget *OsdCrosshairEnable = gtk_check_button_new_with_label (_(" Cross-hair")); g_object_set_data (G_OBJECT (OsdCrosshairEnable), "osd_info", GINT_TO_POINTER(REND_OSD_CROSSHAIR)); gtk_widget_set_halign (OsdCrosshairEnable, GTK_ALIGN_FILL); gtk_widget_set_hexpand (OsdCrosshairEnable, TRUE); gtk_grid_attach(GTK_GRID(table_osd), OsdCrosshairEnable, 0, 0, 1, 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(OsdCrosshairEnable), (render_get_osd_mask() & REND_OSD_CROSSHAIR) > 0); gtk_widget_show (OsdCrosshairEnable); g_signal_connect (GTK_CHECK_BUTTON(OsdCrosshairEnable), "toggled", G_CALLBACK (render_osd_changed), NULL); /*add control grid to parent container*/ gtk_container_add(GTK_CONTAINER(parent), video_controls_grid); return 0; } guvcview-2.0.2+debian/guvcview/guvcview.c000066400000000000000000000254671256377215300204630ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include "gview.h" #include "gviewv4l2core.h" #include "gviewrender.h" #include "gviewencoder.h" #include "core_time.h" #include "../config.h" #include "video_capture.h" #include "options.h" #include "config.h" #include "gui.h" #include "core_io.h" int debug_level = 0; static __THREAD_TYPE capture_thread; /* * signal callback * args: * signum - signal number * * return: none */ void signal_callback_handler(int signum) { printf("GUVCVIEW Caught signal %d\n", signum); switch(signum) { case SIGINT: /* Terminate program */ quit_callback(NULL); break; case SIGUSR1: gui_click_video_capture_button(); break; case SIGUSR2: /* save image */ video_capture_save_image(); break; } } int main(int argc, char *argv[]) { /*check stack size*/ const rlim_t kStackSize = 128L * 1024L * 1024L; /* min stack size = 128 Mb*/ struct rlimit rl; int result; result = getrlimit(RLIMIT_STACK, &rl); if (result == 0) { if (rl.rlim_cur < kStackSize) { rl.rlim_cur = kStackSize; result = setrlimit(RLIMIT_STACK, &rl); if (result != 0) { fprintf(stderr, "GUVCVIEW: setrlimit returned result = %d\n", result); } } } // Register signal and signal handler signal(SIGINT, signal_callback_handler); signal(SIGUSR1, signal_callback_handler); signal(SIGUSR2, signal_callback_handler); /*localization*/ char* lc_all = setlocale (LC_ALL, ""); char* lc_dir = bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); char* txtdom = textdomain (GETTEXT_PACKAGE); /*parse command line options*/ if(options_parse(argc, argv)) return 0; printf("GUVCVIEW: version %s\n", VERSION); /*get command line options*/ options_t *my_options = options_get(); char *config_path = smart_cat(getenv("HOME"), '/', ".config/guvcview2"); mkdir(config_path, 0777); char *device_name = get_file_basename(my_options->device); char *config_file = smart_cat(config_path, '/', device_name); /*clean strings*/ free(config_path); free(device_name); /*load config data*/ config_load(config_file); /*update config with options*/ config_update(my_options); /*get config data*/ config_t *my_config = config_get(); debug_level = my_options->verbosity; if (debug_level > 1) printf("GUVCVIEW: language catalog=> dir:%s type:%s cat:%s.mo\n", lc_dir, lc_all, txtdom); /*select render API*/ int render = RENDER_SDL; if(strcasecmp(my_config->render, "none") == 0) render = RENDER_NONE; else if(strcasecmp(my_config->render, "sdl") == 0) render = RENDER_SDL; /*select gui API*/ int gui = GUI_GTK3; if(strcasecmp(my_config->gui, "none") == 0) gui = GUI_NONE; else if(strcasecmp(my_config->gui, "gtk3") == 0) gui = GUI_GTK3; /*select audio API*/ int audio = AUDIO_PORTAUDIO; if(strcasecmp(my_config->audio, "none") == 0) audio = AUDIO_NONE; else if(strcasecmp(my_config->audio, "port") == 0) audio = AUDIO_PORTAUDIO; #if HAS_PULSEAUDIO else if(strcasecmp(my_config->audio, "pulse") == 0) audio = AUDIO_PULSE; #endif if(debug_level > 1) printf("GUVCVIEW: main thread (tid: %u)\n", (unsigned int) syscall (SYS_gettid)); /*initialize the v4l2 core*/ v4l2core_set_verbosity(debug_level); if(my_options->disable_libv4l2) v4l2core_disable_libv4l2(); /*init the device list*/ v4l2core_init_device_list(); /*init the v4l2core (redefines language catalog)*/ if(v4l2core_init_dev(my_options->device) < 0) { char message[50]; snprintf(message, 49, "no video device (%s) found", my_options->device); gui_error("Guvcview error", "no video device found", 1); v4l2core_close_v4l2_device_list(); options_clean(); return -1; } else set_render_flag(render); /*select capture method*/ if(strcasecmp(my_config->capture, "read") == 0) v4l2core_set_capture_method(IO_READ); else v4l2core_set_capture_method(IO_MMAP); /*set software autofocus sort method*/ v4l2core_soft_autofocus_set_sort(AUTOF_SORT_INSERT); /*set the intended fps*/ v4l2core_define_fps(my_config->fps_num,my_config->fps_denom); /*set fx masks*/ set_render_fx_mask(my_config->video_fx); set_audio_fx_mask(my_config->audio_fx); /*set OSD mask*/ /*make sure VU meter OSD is disabled since it's set by the audio capture*/ my_config->osd_mask &= ~REND_OSD_VUMETER_MONO; my_config->osd_mask &= ~REND_OSD_VUMETER_STEREO; render_set_osd_mask(my_config->osd_mask); /*select video codec*/ if(debug_level > 1) printf("GUVCVIEW: setting video codec to '%s'\n", my_config->video_codec); int vcodec_ind = encoder_get_video_codec_ind_4cc(my_config->video_codec); if(vcodec_ind < 0) { char message[50]; snprintf(message, 49, "invalid video codec '%s' using raw input", my_config->video_codec); gui_error("Guvcview warning", message, 0); fprintf(stderr, "GUVCVIEW: invalid video codec '%s' using raw input\n", my_config->video_codec); vcodec_ind = 0; } set_video_codec_ind(vcodec_ind); /*select audio codec*/ if(debug_level > 1) printf("GUVCVIEW: setting audio codec to '%s'\n", my_config->audio_codec); int acodec_ind = encoder_get_audio_codec_ind_name(my_config->audio_codec); if(acodec_ind < 0) { char message[50]; snprintf(message, 49, "invalid audio codec '%s' using pcm input", my_config->audio_codec); gui_error("Guvcview warning", message, 0); fprintf(stderr, "GUVCVIEW: invalid audio codec '%s' using pcm input\n", my_config->audio_codec); acodec_ind = 0; } set_audio_codec_ind(acodec_ind); /*check if need to load a profile*/ if(my_options->prof_filename) v4l2core_load_control_profile(my_options->prof_filename); /*set the profile file*/ if(!my_config->profile_name) my_config->profile_name = strdup(get_profile_name()); if(!my_config->profile_path) my_config->profile_path = strdup(get_profile_path()); set_profile_name(my_config->profile_name); set_profile_path(my_config->profile_path); /*set the video file*/ if(!my_config->video_name) my_config->video_name = strdup(get_video_name()); if(!my_config->video_path) my_config->video_path = strdup(get_video_path()); set_video_name(my_config->video_name); set_video_path(my_config->video_path); /*set the photo(image) file*/ if(!my_config->photo_name) my_config->photo_name = strdup(get_photo_name()); if(!my_config->photo_path) my_config->photo_path = strdup(get_photo_path()); set_photo_name(my_config->photo_name); set_photo_path(my_config->photo_path); /*set audio interface verbosity*/ audio_set_verbosity(debug_level); /*create the inital audio context (stored staticly in video_capture)*/ audio_context_t *audio_ctx = create_audio_context(audio, my_config->audio_device); if(audio_ctx != NULL) my_config->audio_device = audio_ctx->device; else fprintf(stderr, "GUVCVIEW: couldn't get a valid audio context for the selected api - disabling audio\n"); encoder_set_verbosity(debug_level); /*init the encoder*/ encoder_init(); /*start capture thread if not in control_panel mode*/ if(!my_options->control_panel) { /* * prepare format: * doing this inside the capture thread may create a race * condition with gui_attach, as it requires the current * format to be set */ int format = v4l2core_fourcc_2_v4l2_pixelformat(my_config->format); v4l2core_prepare_new_format(format); /*prepare resolution*/ v4l2core_prepare_new_resolution(my_config->width, my_config->height); /*try to set the video stream format on the device*/ int ret = v4l2core_update_current_format(); if(ret != E_OK) { fprintf(stderr, "GUCVIEW: could not set the defined stream format\n"); fprintf(stderr, "GUCVIEW: trying first listed stream format\n"); v4l2core_prepare_valid_format(); v4l2core_prepare_valid_resolution(); ret = v4l2core_update_current_format(); if(ret != E_OK) { fprintf(stderr, "GUCVIEW: also could not set the first listed stream format\n"); fprintf(stderr, "GUVCVIEW: Video capture failed\n"); gui_error("Guvcview error", "could not start a video stream in the device", 1); } } if(ret == E_OK) { capture_loop_data_t cl_data; cl_data.options = (void *) my_options; cl_data.config = (void *) my_config; ret = __THREAD_CREATE(&capture_thread, capture_loop, (void *) &cl_data); if(ret) { fprintf(stderr, "GUVCVIEW: Video thread creation failed\n"); gui_error("Guvcview error", "could not start the video capture thread", 1); } else if(debug_level > 2) printf("GUVCVIEW: created capture thread with tid: %u\n", (unsigned int) capture_thread); } } /*initialize the gui - do this after setting the video stream*/ gui_attach(gui, 800, 600, my_options->control_panel); /*run the gui loop*/ gui_run(); if(!my_options->control_panel) __THREAD_JOIN(capture_thread); /*closes the audio context (stored staticly in video_capture)*/ close_audio_context(); v4l2core_close_dev(); v4l2core_close_v4l2_device_list(); /*save config before cleaning the options*/ config_save(config_file); if(config_file) free(config_file); config_clean(); options_clean(); if(debug_level > 0) printf("GUVCVIEW: good bye\n"); return 0; } guvcview-2.0.2+debian/guvcview/options.c000066400000000000000000000347051256377215300203120ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include "gviewv4l2core.h" #include "gview.h" #include "core_io.h" #include "gui.h" #include "options.h" #include "../config.h" typedef struct _opt_values_t { char opt_short; char opt_long[20]; int req_arg; char opt_help_arg[20]; char opt_help[80]; } opt_values_t; static opt_values_t opt_values[] = { { .opt_short = 'h', .opt_long = "help", .req_arg = 0, .opt_help_arg = "", .opt_help = N_("Print help") }, { .opt_short = 'v', .opt_long = "version", .req_arg = 0, .opt_help_arg = "", .opt_help = N_("Print version"), }, { .opt_short = 'w', .opt_long = "verbosity", .req_arg = 1, .opt_help_arg = N_("LEVEL"), .opt_help = N_("Set Verbosity level (def: 0)") }, { .opt_short = 'd', .opt_long = "device", .req_arg = 1, .opt_help_arg = N_("DEVICE"), .opt_help = N_("Set device name (def: /dev/video0)"), }, { .opt_short = 'c', .opt_long = "capture", .req_arg = 1, .opt_help_arg = N_("METHOD"), .opt_help = N_("Set capture method [read | mmap (def)]"), }, { .opt_short = 'b', .opt_long = "disable_libv4l2", .req_arg = 0, .opt_help_arg = "", .opt_help = N_("disable calls to libv4l2"), }, { .opt_short = 'x', .opt_long = "resolution", .req_arg = 1, .opt_help_arg = N_("WIDTHxHEIGHT"), .opt_help = N_("Request resolution (e.g 640x480)") }, { .opt_short = 'f', .opt_long = "format", .req_arg = 1, .opt_help_arg = N_("FOURCC"), .opt_help = N_("Request format (e.g MJPG)") }, { .opt_short = 'r', .opt_long = "render", .req_arg = 1, .opt_help_arg = N_("RENDER_API"), .opt_help = N_("Select render API (e.g none; sdl)") }, { .opt_short = 'm', .opt_long = "render_window", .req_arg = 1, .opt_help_arg = N_("RENDER_WINDOW_FLAGS"), .opt_help = N_("Set render window flags (e.g none; full; max)") }, { .opt_short = 'a', .opt_long = "audio", .req_arg = 1, .opt_help_arg = N_("AUDIO_API"), .opt_help = N_("Select audio API (e.g none; port; pulse)") }, { .opt_short = 'k', .opt_long = "audio_device", .req_arg = 1, .opt_help_arg = N_("AUDIO_DEVICE"), .opt_help = N_("Select audio device index for selected api (0..N)") }, { .opt_short = 'g', .opt_long = "gui", .req_arg = 1, .opt_help_arg = N_("GUI_API"), .opt_help = N_("Select GUI API (e.g none; gtk3)") }, { .opt_short = 'o', .opt_long = "audio_codec", .req_arg = 1, .opt_help_arg = N_("CODEC"), .opt_help = N_("Audio codec [pcm mp2 mp3 aac ac3 vorb]") }, { .opt_short = 'u', .opt_long = "video_codec", .req_arg = 1, .opt_help_arg = N_("CODEC"), .opt_help = N_("Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]") }, { .opt_short = 'p', .opt_long = "profile", .req_arg = 1, .opt_help_arg = N_("FILENAME"), .opt_help = N_("load control profile") }, { .opt_short = 'j', .opt_long = "video", .req_arg = 1, .opt_help_arg = N_("FILENAME"), .opt_help = N_("filename for captured video)") }, { .opt_short = 'i', .opt_long = "image", .req_arg = 1, .opt_help_arg = N_("FILENAME"), .opt_help = N_("filename for captured image)") }, { .opt_short = 'y', .opt_long = "video_timer", .req_arg = 1, .opt_help_arg = N_("TIME_IN_SEC"), .opt_help = N_("time (double) in sec. for video capture)") }, { .opt_short = 't', .opt_long = "photo_timer", .req_arg = 1, .opt_help_arg = N_("TIME_IN_SEC"), .opt_help = N_("time (double) in sec. between captured photos)") }, { .opt_short = 'n', .opt_long = "photo_total", .req_arg = 1, .opt_help_arg = N_("TOTAL"), .opt_help = N_("total number of captured photos)") }, { .opt_short = 'z', .opt_long = "control_panel", .req_arg = 0, .opt_help_arg = "", .opt_help = N_("Start in control panel mode") }, { .opt_short = 0, .opt_long = "", .req_arg = 0, .opt_help_arg = "", .opt_help = "" }, }; static options_t my_options = { .verbosity = 0, .device = "/dev/video0", .width = 0, .height = 0, .control_panel = 0, .disable_libv4l2 = 0, .format = "", .render = "", .gui = "", .audio = "", .audio_device = -1, /*use default*/ .capture = "", .video_codec = "", .audio_codec = "", .prof_filename = NULL, .profile_name = NULL, .profile_path = NULL, .video_name = NULL, .video_path = NULL, .photo_name = NULL, .photo_path = NULL, .video_timer = 0, .photo_timer = 0, .photo_npics = 0, .render_flag = "none", }; /* * get the internal options data * args: * none * * asserts: * none * * returns: pointer to internal options_t struct */ options_t *options_get() { return &my_options; } /* * prints the number of command line options * args: * none * * asserts: * none * * returns: last valid index of opt_values */ int opt_get_number() { int i = 0; /*long option must always be set*/ do { i++; } while(strlen(opt_values[i].opt_long) > 0); return i; } /* * gets the max length of help string (up to end of opt_help_arg) * args: * none * * asserts: * none * * returns: max lenght */ static int opt_get_help_max_len() { int i = 0; int max_len = 0; /*long option must always be set*/ do { int len = 5 + /*-c, and --*/ strlen(opt_values[i].opt_long); if(strlen(opt_values[i].opt_help_arg) > 0) len += strlen(opt_values[i].opt_help_arg) + 1; /*add =*/ if(len > max_len) max_len = len; i++; } while(strlen(opt_values[i].opt_long) > 0); return max_len; } /* * prints the command line help * args: * none * * asserts: * none * * returns: none */ void opt_print_help() { printf(_("Guvcview version %s\n\n"), VERSION); printf(_("Usage:\n guvcview [OPTIONS]\n\n")); printf(_("OPTIONS:\n")); int max_len = opt_get_help_max_len(); int len = 0; int i = 0; /*long option must always be set*/ do { if(opt_values[i].opt_short > 0) { len = 3; printf("-%c,", opt_values[i].opt_short); } printf("--%s", opt_values[i].opt_long); len += strlen(opt_values[i].opt_long) + 2; if(strlen(opt_values[i].opt_help_arg) > 0) { len += strlen(opt_values[i].opt_help_arg) + 1; printf("=%s", _(opt_values[i].opt_help_arg)); } int spaces = max_len - len; int j = 0; for(j=0; j < spaces; j++) printf(" "); if(strlen(opt_values[i].opt_help) > 0) printf("\t:%s\n", _(opt_values[i].opt_help)); i++; } while(strlen(opt_values[i].opt_long) > 0); } /* * prints the version info * args: * none * * asserts: * none * * returns: none */ void opt_print_version() { printf("Guvcview version %s\n", VERSION); } /* * parses the command line options * args: * argc - number of comman line args * argv - pointer to list of command line args * * asserts: * none * * returns: int (if > 0 app should terminate (help, version) */ int options_parse(int argc, char *argv[]) { int ret = 0; int long_index =0; char *stopstring; int n_options = opt_get_number(); struct option long_options[n_options + 1]; char opt_string[128] = ""; char *opt_str_ptr = opt_string; int i =0; for(i=0; i < n_options; i++) { long_options[i].name = opt_values[i].opt_long; long_options[i].has_arg = opt_values[i].req_arg > 0 ? required_argument: no_argument; long_options[i].flag = NULL; long_options[i].val = opt_values[i].opt_short; /*set opt string (be carefull we don't exceed size)*/ if(opt_str_ptr - opt_string < 128 - 3) { *opt_str_ptr++ = opt_values[i].opt_short; if(opt_values[i].req_arg > 0) *opt_str_ptr++ = ':'; } } long_options[n_options].name = 0; long_options[n_options].has_arg = 0; long_options[n_options].flag = NULL; long_options[n_options].val= 0; *opt_str_ptr++='\0'; /*null terminated string*/ int opt = 0; while ((opt = getopt_long(argc, argv, opt_string, long_options, &long_index )) != -1) { switch (opt) { case 'v' : opt_print_version(); ret = 1; break; case 'w': my_options.verbosity = atoi(optarg); break; case 'd': { int str_size = strlen(optarg); if(str_size > 1) /*device needs at least 2 chars*/ strncpy(my_options.device, optarg, 29); else fprintf(stderr, "V4L2_CORE: (options) Error in device usage: -d[--device] DEVICENAME \n"); break; } case 'z': { my_options.control_panel = 1; break; } case 'c': { int str_size = strlen(optarg); if(str_size == 4) /*capture method*/ strncpy(my_options.capture, optarg, 4); break; } case 'b': { my_options.disable_libv4l2 = 1; break; } case 'x': my_options.width = (int) strtoul(optarg, &stopstring, 10); if( *stopstring != 'x') { fprintf(stderr, "V4L2_CORE: (options) Error in resolution usage: -x[--resolution] WIDTHxHEIGHT \n"); } else { ++stopstring; my_options.height = (int) strtoul(stopstring, &stopstring, 10); } if(my_options.width <= 0) my_options.width = 640; if(my_options.height <= 0) my_options.height = 480; break; case 'f': { int str_size = strlen(optarg); if(str_size == 4) /*fourcc is 4 chars*/ strncpy(my_options.format, optarg, 4); break; } case 'r': { int str_size = strlen(optarg); if(str_size <= 4) /*render is at most 4 chars*/ strncpy(my_options.render, optarg, 4); break; } case 'm': { int str_size = strlen(optarg); if(str_size <= 4) /*render is at most 4 chars*/ strncpy(my_options.render_flag, optarg, 4); break; } case 'g': { int str_size = strlen(optarg); if(str_size == 4) /*gui is 4 chars*/ strncpy(my_options.gui, optarg, 4); break; } case 'a': { /*audio api is at most 5 chars (p u l s e)*/ strncpy(my_options.audio, optarg, 5); break; } case 'k': my_options.audio_device = atoi(optarg); break; case 'o': { int str_size = strlen(optarg); if(str_size > 2) /*audio codec*/ strncpy(my_options.audio_codec, optarg, 4); break; } case 'u': { int str_size = strlen(optarg); if(str_size > 2) /*video codec*/ strncpy(my_options.video_codec, optarg, 4); break; } case 'p': { if(my_options.prof_filename != NULL) free(my_options.prof_filename); my_options.prof_filename = strdup(optarg); /*get profile path and basename*/ char *basename = get_file_basename(optarg); if(basename) { //set_profile_name(basename); if(my_options.profile_name != NULL) free(my_options.profile_name); my_options.profile_name = basename; } char *pathname = get_file_pathname(optarg); if(pathname) { //set_profile_path(pathname); if(my_options.profile_path != NULL) free(my_options.profile_path); my_options.profile_path = pathname; } break; } case 'j': { /*get video path and basename*/ char *basename = get_file_basename(optarg); if(basename) { //set_video_name(basename); //free(basename); if(my_options.video_name != NULL) free(my_options.video_name); my_options.video_name = basename; } char *pathname = get_file_pathname(optarg); if(pathname) { //set_video_path(pathname); //free(pathname); if(my_options.video_path != NULL) free(my_options.video_path); my_options.video_path = pathname; } break; } case 'i': { /*get photo path and basename*/ char *basename = get_file_basename(optarg); if(basename) { //set_photo_name(basename); //free(basename); if(my_options.photo_name != NULL) free(my_options.photo_name); my_options.photo_name = basename; } char *pathname = get_file_pathname(optarg); if(pathname) { //set_photo_path(pathname); //free(pathname); if(my_options.photo_path != NULL) free(my_options.photo_path); my_options.photo_path = pathname; } break; } case 'y': my_options.video_timer = strtod(optarg, (char **)NULL); break; case 't': my_options.photo_timer = strtod(optarg, (char **)NULL); break; case 'n': my_options.photo_npics = atoi(optarg); break; default: case 'h': opt_print_help(); ret = 1; break; } } return ret; } /* * cleans internal options allocations * args: * none * * asserts: * none * * returns: none */ void options_clean() { if(my_options.prof_filename != NULL) free(my_options.prof_filename); my_options.prof_filename = NULL; if(my_options.profile_name != NULL) free(my_options.profile_name); my_options.profile_name = NULL; if(my_options.profile_path != NULL) free(my_options.profile_path); my_options.profile_path = NULL; if(my_options.video_name != NULL) free(my_options.video_name); my_options.video_name = NULL; if(my_options.video_path != NULL) free(my_options.video_path); my_options.video_path = NULL; if(my_options.photo_name != NULL) free(my_options.photo_name); my_options.photo_name = NULL; if(my_options.photo_path != NULL) free(my_options.photo_path); my_options.photo_path = NULL; } guvcview-2.0.2+debian/guvcview/options.h000066400000000000000000000064321256377215300203130ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef OPTIONS_H #define OPTIONS_H typedef struct _options_t { int verbosity; /*verbosity level*/ char device[30]; /*device name*/ int width; /*width*/ int height; /*height*/ int control_panel; /*flag control panel mode*/ int disable_libv4l2; /*set to 1 to disbale libv4l2 calls*/ char format[5]; /*pixelformat fourcc*/ char render[5]; /*render api*/ char gui[5]; /*gui api*/ char audio[6]; /*audio api - none; port; pulse*/ int audio_device; /*audio device index 0..N (-1 = default)*/ char capture[5]; /*capture method: read or mmap*/ char audio_codec[5]; /*audio codec*/ char video_codec[5]; /*video codec*/ char *prof_filename; /*profile_filename (if set load it on start)*/ char *profile_name; char *profile_path; char *video_name; char *video_path; char *photo_name; char *photo_path; double video_timer; /*video capture time in seconds (double)*/ double photo_timer; /*photo capture timer interval in seconds (double)*/ int photo_npics; /*number of photo captures*/ char render_flag[5]; /*render window flag => default (none) | FULLSCREEN (full) | MAXIMIZED (max)*/ } options_t; /* * get the internal options data * args: * none * * asserts: * none * * returns: pointer to internal options_t struct */ options_t *options_get(); /* * parses the command line options * args: * argc - number of comman line args * argv - pointer to list of command line args * * asserts: * none * * returns: int (if > 0 app should terminate (help, version) */ int options_parse(int argc, char *argv[]); /* * cleans internal options allocations * args: * none * * asserts: * none * * returns: none */ void options_clean(); #endif guvcview-2.0.2+debian/guvcview/video_capture.c000066400000000000000000000633161256377215300214500ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewv4l2core.h" #include "gviewrender.h" #include "gviewencoder.h" #include "gview.h" #include "video_capture.h" #include "options.h" #include "config.h" #include "core_io.h" #include "gui.h" #include "../config.h" /*flags*/ extern int debug_level; static int render = RENDER_SDL; /*render API*/ static int quit = 0; /*terminate flag*/ static int save_image = 0; /*save image flag*/ static int save_video = 0; /*save video flag*/ static uint64_t my_photo_timer = 0; /*timer count*/ static uint64_t my_video_timer = 0; /*timer count*/ static uint64_t my_video_begin_time = 0; /*first video frame ts*/ static int restart = 0; /*restart flag*/ static char render_caption[30]; /*render window caption*/ static uint32_t my_render_mask = REND_FX_YUV_NOFILT; /*render fx filter mask*/ static uint32_t my_audio_mask = AUDIO_FX_NONE; /*audio fx filter mask*/ /*continues focus*/ static int do_soft_autofocus = 0; /*single time focus (can happen during continues focus)*/ static int do_soft_focus = 0; /*pointer to audio context data*/ static audio_context_t *my_audio_ctx = NULL; static __THREAD_TYPE encoder_thread; static int my_encoder_status = 0; static char status_message[80]; /* * set render flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_render_flag(int value) { render = value; } /* * get render fx mask * args: * none * * asserts: * none * * returns: render fx mask */ uint32_t get_render_fx_mask() { return my_render_mask; } /* * set render fx mask * args: * new_mask - fx mask value * * asserts: * none * * returns: none */ void set_render_fx_mask(uint32_t new_mask) { my_render_mask = new_mask; /* update config */ config_t *my_config = config_get(); my_config->video_fx = my_render_mask; } /* * get audio fx mask * args: * none * * asserts: * none * * returns: audio fx mask */ uint32_t get_audio_fx_mask() { return my_audio_mask; } /* * set audio fx mask * args: * new_mask - new audio fx filter mask * * asserts: * none * * returns: none */ void set_audio_fx_mask(uint32_t new_mask) { my_audio_mask = new_mask; /* update config */ config_t *my_config = config_get(); my_config->audio_fx = my_audio_mask; } /* * set software autofocus flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_soft_autofocus(int value) { do_soft_autofocus = value; } /* * sets the save video flag * args: * value - save_video flag value * * asserts: * none * * returns: none */ void video_capture_save_video(int value) { save_video = value; if(debug_level > 1) printf("GUVCVIEW: save video flag changed to %i\n", save_video); } /* * gets the save video flag * args: * none * * asserts: * none * * returns: save_video flag */ int video_capture_get_save_video() { return save_video; } /* * sets the save image flag * args: * none * * asserts: * none * * returns: none */ void video_capture_save_image() { save_image = 1; } /* * get encoder started flag * args: * none * * asserts: * none * * returns: encoder started flag (1 -started; 0 -not started) */ int get_encoder_status() { return my_encoder_status; } /* * stops the photo timed capture * args: * none * * asserts: * none * * returns: none */ void stop_photo_timer() { my_photo_timer = 0; gui_set_image_capture_button_label(_("Cap. Image (I)")); } /* * checks if photo timed capture is on * args: * none * * asserts: * none * * returns: 1 if on; 0 if off */ int check_photo_timer() { return ( (my_photo_timer > 0) ? 1 : 0 ); } /* * reset video timer * args: * none * * asserts: * none * * returns: none */ void reset_video_timer() { my_video_timer = 0; my_video_begin_time = 0; } /* * stops the video timed capture * args: * none * * asserts: * none * * returns: none */ static void stop_video_timer() { /* * if we are saving video stop it * this also calls reset_video_timer */ if(video_capture_get_save_video()) gui_click_video_capture_button(); /*make sure the timer is reset*/ reset_video_timer(); } /* * checks if video timed capture is on * args: * none * * asserts: * none * * returns: 1 if on; 0 if off */ int check_video_timer() { return ( (my_video_timer > 0) ? 1 : 0 ); } /* * set software focus flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_soft_focus(int value) { v4l2core_soft_autofocus_set_focus(); do_soft_focus = value; } /* * request format update * args: * none * * asserts: * none * * returns: none */ void request_format_update() { restart = 1; } /* * quit callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int quit_callback(void *data) { /*make sure we only call gui_close once*/ if(!quit) gui_close(); quit = 1; return 0; } /************ RENDER callbacks *******************/ /* * key I pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_I_callback(void *data) { gui_click_image_capture_button(); if(debug_level > 1) printf("GUVCVIEW: I key pressed\n"); return 0; } /* * key V pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_V_callback(void *data) { gui_click_video_capture_button(data); if(debug_level > 1) printf("GUVCVIEW: V key pressed\n"); return 0; } /* * key DOWN pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_DOWN_callback(void *data) { if(v4l2core_has_pantilt_id()) { int id = V4L2_CID_TILT_RELATIVE; int value = v4l2core_get_tilt_step(); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(control) { control->value = value; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); return 0; } } return -1; } /* * key UP pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_UP_callback(void *data) { if(v4l2core_has_pantilt_id()) { int id = V4L2_CID_TILT_RELATIVE; int value = - v4l2core_get_tilt_step(); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(control) { control->value = value; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); return 0; } } return -1; } /* * key LEFT pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_LEFT_callback(void *data) { if(v4l2core_has_pantilt_id()) { int id = V4L2_CID_PAN_RELATIVE; int value = v4l2core_get_pan_step(); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(control) { control->value = value; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); return 0; } } return -1; } /* * key RIGHT pressed callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int key_RIGHT_callback(void *data) { if(v4l2core_has_pantilt_id()) { int id = V4L2_CID_PAN_RELATIVE; int value = - v4l2core_get_pan_step(); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); if(control) { control->value = value; if(v4l2core_set_control_value_by_id(id)) fprintf(stderr, "GUVCVIEW: error setting pan/tilt value\n"); return 0; } } return -1; } /* * create an audio context * args: * api - audio api * device - api device index (-1 use default) * * asserts: * none * * returns: pointer to audio context data */ audio_context_t *create_audio_context(int api, int device) { close_audio_context(); my_audio_ctx = audio_init(api, device); /*force a valid number of channels*/ if(my_audio_ctx != NULL && my_audio_ctx->channels > 2) my_audio_ctx->channels = 2; return my_audio_ctx; } /* * get audio context * args: * none * * asserts: * none * * returns: pointer to audio context data (or NULL if no audio) */ audio_context_t *get_audio_context() { if(!my_audio_ctx) return NULL; /*force a valid number of channels*/ if(my_audio_ctx->channels > 2) my_audio_ctx->channels = 2; return my_audio_ctx; } /* * close the audio context * args: * none * * asserts: * none * * returns: none */ void close_audio_context() { if(my_audio_ctx != NULL) audio_close(my_audio_ctx); my_audio_ctx = NULL; } /* * audio processing loop (should run in a separate thread) * args: * data - pointer to user data * * asserts: * none * * returns: pointer to return code */ static void *audio_processing_loop(void *data) { encoder_context_t *encoder_ctx = (encoder_context_t *) data; if(debug_level > 1) printf("GUVCVIEW: audio thread (tid: %u)\n", (unsigned int) syscall (SYS_gettid)); audio_context_t *audio_ctx = get_audio_context(); if(!audio_ctx) { fprintf(stderr, "GUVCVIEW: no audio context: skiping audio processing\n"); return ((void *) -1); } audio_buff_t *audio_buff = NULL; /*start audio capture*/ int frame_size = encoder_get_audio_frame_size(encoder_ctx); audio_ctx->capture_buff_size = frame_size * audio_ctx->channels; audio_start(audio_ctx); /* * alloc the buffer after audio_start * otherwise capture_buff_size may not * be correct * allocated data is big enough for float samples (32 bit) * although it may contain int16 samples (16 bit) */ audio_buff = audio_get_buffer(audio_ctx); int sample_type = encoder_get_audio_sample_fmt(encoder_ctx); uint32_t osd_mask = render_get_osd_mask(); /*enable vu meter OSD display*/ if(audio_ctx->channels > 1) osd_mask |= REND_OSD_VUMETER_STEREO; else osd_mask |= REND_OSD_VUMETER_MONO; render_set_osd_mask(osd_mask); while(video_capture_get_save_video()) { int ret = audio_get_next_buffer(audio_ctx, audio_buff, sample_type, my_audio_mask); if(ret > 0) { /* * no buffers to process * sleep a couple of milisec */ struct timespec req = { .tv_sec = 0, .tv_nsec = 1000000};/*nanosec*/ nanosleep(&req, NULL); } else if(ret == 0) { encoder_ctx->enc_audio_ctx->pts = audio_buff->timestamp; /*OSD vu meter level*/ render_set_vu_level(audio_buff->level_meter); encoder_process_audio_buffer(encoder_ctx, audio_buff->data); } } /*flush any delayed audio frames*/ encoder_flush_audio_buffer(encoder_ctx); /*reset vu meter*/ audio_buff->level_meter[0] = 0; audio_buff->level_meter[1] = 0; render_set_vu_level(audio_buff->level_meter); /*disable OSD vumeter*/ osd_mask &= ~REND_OSD_VUMETER_STEREO; osd_mask &= ~REND_OSD_VUMETER_MONO; render_set_osd_mask(osd_mask); audio_stop(audio_ctx); audio_delete_buffer(audio_buff); return ((void *) 0); } /* * encoder loop (should run in a separate thread) * args: * data - pointer to user data * * asserts: * none * * returns: pointer to return code */ static void *encoder_loop(void *data) { my_encoder_status = 1; if(debug_level > 1) printf("GUVCVIEW: encoder thread (tid: %u)\n", (unsigned int) syscall (SYS_gettid)); /*get the audio context*/ audio_context_t *audio_ctx = get_audio_context(); __THREAD_TYPE encoder_audio_thread; int channels = 0; int samprate = 0; if(audio_ctx) { channels = audio_ctx->channels; samprate = audio_ctx->samprate; } if(debug_level > 0) printf("GUVCVIEW: audio [channels= %i; samprate= %i] \n", channels, samprate); /*create the encoder context*/ encoder_context_t *encoder_ctx = encoder_get_context( v4l2core_get_requested_frame_format(), get_video_codec_ind(), get_audio_codec_ind(), get_video_muxer(), v4l2core_get_frame_width(), v4l2core_get_frame_height(), v4l2core_get_fps_num(), v4l2core_get_fps_denom(), channels, samprate); /*store external SPS and PPS data if needed*/ if(encoder_ctx->video_codec_ind == 0 && /*raw - direct input*/ v4l2core_get_requested_frame_format() == V4L2_PIX_FMT_H264) { /*request a IDR (key) frame*/ v4l2core_h264_request_idr(); if(debug_level > 0) printf("GUVCVIEW: storing external pps and sps data in encoder context\n"); encoder_ctx->h264_pps_size = v4l2core_get_h264_pps_size(); if(encoder_ctx->h264_pps_size > 0) { encoder_ctx->h264_pps = calloc(encoder_ctx->h264_pps_size, sizeof(uint8_t)); if(encoder_ctx->h264_pps == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (encoder_loop): %s\n", strerror(errno)); exit(-1); } memcpy(encoder_ctx->h264_pps, v4l2core_get_h264_pps(), encoder_ctx->h264_pps_size); } encoder_ctx->h264_sps_size = v4l2core_get_h264_sps_size(); if(encoder_ctx->h264_sps_size > 0) { encoder_ctx->h264_sps = calloc(encoder_ctx->h264_sps_size, sizeof(uint8_t)); if(encoder_ctx->h264_sps == NULL) { fprintf(stderr,"GUVCVIEW: FATAL memory allocation failure (encoder_loop): %s\n", strerror(errno)); exit(-1); } memcpy(encoder_ctx->h264_sps, v4l2core_get_h264_sps(), encoder_ctx->h264_sps_size); } } uint32_t current_framerate = 0; if(v4l2core_get_requested_frame_format() == V4L2_PIX_FMT_H264) { /* store framerate since it may change due to scheduler*/ current_framerate = v4l2core_get_h264_frame_rate_config(); } char *video_filename = NULL; /*get_video_[name|path] always return a non NULL value*/ char *name = strdup(get_video_name()); char *path = strdup(get_video_path()); if(get_video_sufix_flag()) { char *new_name = add_file_suffix(path, name); free(name); /*free old name*/ name = new_name; /*replace with suffixed name*/ } int pathsize = strlen(path); if(path[pathsize] != '/') video_filename = smart_cat(path, '/', name); else video_filename = smart_cat(path, 0, name); snprintf(status_message, 79, _("saving video to %s"), video_filename); gui_status_message(status_message); /*muxer initialization*/ encoder_muxer_init(encoder_ctx, video_filename); /*start video capture*/ video_capture_save_video(1); int treshold = 102400; /*100 Mbytes*/ int64_t last_check_pts = 0; /*last pts when disk supervisor called*/ /*start audio processing thread*/ if(encoder_ctx->enc_audio_ctx != NULL && audio_ctx->channels > 0) { if(debug_level > 1) printf("GUVCVIEW: starting encoder audio thread\n"); int ret = __THREAD_CREATE(&encoder_audio_thread, audio_processing_loop, (void *) encoder_ctx); if(ret) fprintf(stderr, "GUVCVIEW: encoder audio thread creation failed (%i)\n", ret); else if(debug_level > 2) printf("GUVCVIEW: created audio encoder thread with tid: %u\n", (unsigned int) encoder_audio_thread); } while(video_capture_get_save_video()) { /*process the video buffer*/ if(encoder_process_next_video_buffer(encoder_ctx) > 0) { /* * no buffers to process * sleep a couple of milisec */ struct timespec req = { .tv_sec = 0, .tv_nsec = 1000000};/*nanosec*/ nanosleep(&req, NULL); } /*disk supervisor*/ if(encoder_ctx->enc_video_ctx->pts - last_check_pts > 2 * NSEC_PER_SEC) { last_check_pts = encoder_ctx->enc_video_ctx->pts; if(!encoder_disk_supervisor(treshold, path)) { /*stop capture*/ gui_set_video_capture_button_status(0); } } } /*flush the video buffer*/ encoder_flush_video_buffer(encoder_ctx); /*make sure the audio processing thread has stopped*/ if(encoder_ctx->enc_audio_ctx != NULL && audio_ctx->channels > 0) { if(debug_level > 1) printf("GUVCVIEW: join encoder audio thread\n"); __THREAD_JOIN(encoder_audio_thread); } /*close the muxer*/ encoder_muxer_close(encoder_ctx); /*close the encoder context (clean up)*/ encoder_close(encoder_ctx); if(v4l2core_get_requested_frame_format() == V4L2_PIX_FMT_H264) { /* restore framerate */ v4l2core_set_h264_frame_rate_config(current_framerate); } /*clean string*/ free(video_filename); free(path); free(name); my_encoder_status = 0; return ((void *) 0); } /* * capture loop (should run in a separate thread) * args: * data - pointer to user data (options data) * * asserts: * none * * returns: pointer to return code */ void *capture_loop(void *data) { capture_loop_data_t *cl_data = (capture_loop_data_t *) data; options_t *my_options = (options_t *) cl_data->options; //config_t *my_config = (config_t *) cl_data->config; uint64_t my_last_photo_time = 0; /*timer count*/ int my_photo_npics = 0;/*no npics*/ /*reset quit flag*/ quit = 0; if(debug_level > 1) printf("GUVCVIEW: capture thread (tid: %u)\n", (unsigned int) syscall (SYS_gettid)); int ret = 0; int render_flags = 0; if (strcasecmp(my_options->render_flag, "full") == 0) render_flags = 1; else if (strcasecmp(my_options->render_flag, "max") == 0) render_flags = 2; render_set_verbosity(debug_level); if(render_init(render, v4l2core_get_frame_width(), v4l2core_get_frame_height(), render_flags) < 0) render = RENDER_NONE; else { render_set_event_callback(EV_QUIT, &quit_callback, NULL); render_set_event_callback(EV_KEY_V, &key_V_callback, NULL); render_set_event_callback(EV_KEY_I, &key_I_callback, NULL); render_set_event_callback(EV_KEY_UP, &key_UP_callback, NULL); render_set_event_callback(EV_KEY_DOWN, &key_DOWN_callback, NULL); render_set_event_callback(EV_KEY_LEFT, &key_LEFT_callback, NULL); render_set_event_callback(EV_KEY_RIGHT, &key_RIGHT_callback, NULL); } /*add a video capture timer*/ if(my_options->video_timer > 0) { my_video_timer = NSEC_PER_SEC * my_options->video_timer; my_video_begin_time = v4l2core_time_get_timestamp(); /*timer count*/ /*if are not saving video start it*/ if(!get_encoder_status()) start_encoder_thread(); } /*add a photo capture timer*/ if(my_options->photo_timer > 0) { my_photo_timer = NSEC_PER_SEC * my_options->photo_timer; my_last_photo_time = v4l2core_time_get_timestamp(); /*timer count*/ } if(my_options->photo_npics > 0) my_photo_npics = my_options->photo_npics; v4l2core_start_stream(); v4l2_frame_buff_t *frame = NULL; //pointer to frame buffer while(!quit) { if(restart) { restart = 0; /*reset*/ v4l2core_stop_stream(); /*close render*/ render_close(); v4l2core_clean_buffers(); /*try new format (values prepared by the request callback)*/ ret = v4l2core_update_current_format(); /*try to set the video stream format on the device*/ if(ret != E_OK) { fprintf(stderr, "GUCVIEW: could not set the defined stream format\n"); fprintf(stderr, "GUCVIEW: trying first listed stream format\n"); v4l2core_prepare_valid_format(); v4l2core_prepare_valid_resolution(); ret = v4l2core_update_current_format(); if(ret != E_OK) { fprintf(stderr, "GUCVIEW: also could not set the first listed stream format\n"); gui_error("Guvcview error", "could not start a video stream in the device", 1); return ((void *) -1); } } /*restart the render with new format*/ if(render_init(render, v4l2core_get_frame_width(), v4l2core_get_frame_height(), render_flags) < 0) render = RENDER_NONE; else { render_set_event_callback(EV_QUIT, &quit_callback, NULL); render_set_event_callback(EV_KEY_V, &key_V_callback, NULL); render_set_event_callback(EV_KEY_I, &key_I_callback, NULL); render_set_event_callback(EV_KEY_UP, &key_UP_callback, NULL); render_set_event_callback(EV_KEY_DOWN, &key_DOWN_callback, NULL); render_set_event_callback(EV_KEY_LEFT, &key_LEFT_callback, NULL); render_set_event_callback(EV_KEY_RIGHT, &key_RIGHT_callback, NULL); } if(debug_level > 0) printf("GUVCVIEW: reset to pixelformat=%x width=%i and height=%i\n", v4l2core_get_requested_frame_format(), v4l2core_get_frame_width(), v4l2core_get_frame_height()); v4l2core_start_stream(); } frame = v4l2core_get_decoded_frame(); if( frame != NULL) { /*run software autofocus (must be called after frame was grabbed and decoded)*/ if(do_soft_autofocus || do_soft_focus) do_soft_focus = v4l2core_soft_autofocus_run(frame); /*render the decoded frame*/ snprintf(render_caption, 29, "Guvcview (%2.2f fps)", v4l2core_get_realfps()); render_set_caption(render_caption); render_frame(frame->yuv_frame, my_render_mask); if(check_photo_timer()) { if((frame->timestamp - my_last_photo_time) > my_photo_timer) { save_image = 1; my_last_photo_time = frame->timestamp; if(my_options->photo_npics > 0) { if(my_photo_npics > 0) my_photo_npics--; else stop_photo_timer(); /*close timer*/ } } } if(check_video_timer()) { if((frame->timestamp - my_video_begin_time) > my_video_timer) stop_video_timer(); } if(save_image) { char *img_filename = NULL; /*get_photo_[name|path] always return a non NULL value*/ char *name = strdup(get_photo_name()); char *path = strdup(get_photo_path()); if(get_photo_sufix_flag()) { char *new_name = add_file_suffix(path, name); free(name); /*free old name*/ name = new_name; /*replace with suffixed name*/ } int pathsize = strlen(path); if(path[pathsize] != '/') img_filename = smart_cat(path, '/', name); else img_filename = smart_cat(path, 0, name); //if(debug_level > 1) // printf("GUVCVIEW: saving image to %s\n", img_filename); snprintf(status_message, 79, _("saving image to %s"), img_filename); gui_status_message(status_message); v4l2core_save_image(frame, img_filename, get_photo_format()); free(path); free(name); free(img_filename); save_image = 0; /*reset*/ } if(video_capture_get_save_video()) { #ifdef USE_PLANAR_YUV int size = (v4l2core_get_frame_width() * v4l2core_get_frame_height() * 3) / 2; #else int size = v4l2core_get_frame_width() * v4l2core_get_frame_height() * 2; #endif uint8_t *input_frame = frame->yuv_frame; /* * TODO: check codec_id, format and frame flags * (we may want to store a compressed format */ if(get_video_codec_ind() == 0) //raw frame { switch(v4l2core_get_requested_frame_format()) { case V4L2_PIX_FMT_H264: input_frame = frame->h264_frame; size = (int) frame->h264_frame_size; break; default: input_frame = frame->raw_frame; size = (int) frame->raw_frame_size; break; } } encoder_add_video_frame(input_frame, size, frame->timestamp, frame->isKeyframe); /* * exponencial scheduler * with 50% threshold (nanosec) * and max value of 250 ms (4 fps) */ int time_sched = encoder_buff_scheduler(ENCODER_SCHED_EXP, 0.5, 250); if(time_sched > 0) { switch(v4l2core_get_requested_frame_format()) { case V4L2_PIX_FMT_H264: { uint32_t framerate = time_sched; /*nanosec*/ v4l2core_set_h264_frame_rate_config(framerate); break; } default: { struct timespec req = { .tv_sec = 0, .tv_nsec = time_sched};/*nanosec*/ nanosleep(&req, NULL); break; } } } } /*we are done with the frame buffer release it*/ v4l2core_release_frame(frame); } } v4l2core_stop_stream(); /*if we are still saving video then stop it*/ if(video_capture_get_save_video()) stop_encoder_thread(); render_close(); return ((void *) 0); } /* * start the encoder thread * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int start_encoder_thread(void *data) { int ret = __THREAD_CREATE(&encoder_thread, encoder_loop, data); if(ret) fprintf(stderr, "GUVCVIEW: encoder thread creation failed (%i)\n", ret); else if(debug_level > 2) printf("GUVCVIEW: created encoder thread with tid: %u\n", (unsigned int) encoder_thread); return ret; } /* * stop the encoder thread * args: * none * * asserts: * none * * returns: error code */ int stop_encoder_thread() { video_capture_save_video(0); __THREAD_JOIN(encoder_thread); return 0; } guvcview-2.0.2+debian/guvcview/video_capture.h000066400000000000000000000117471256377215300214560ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef VIDEO_CAPTURE_H #define VIDEO_CAPTURE_H #include #include #include "gviewaudio.h" typedef struct _capture_loop_data_t { void *options; void *config; void *device; } capture_loop_data_t; /* * set render flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_render_flag(int value); /* * get render fx mask * args: * none * * asserts: * none * * returns: render fx mask */ uint32_t get_render_fx_mask(); /* * set render fx mask * args: * new_mask - new render fx filter mask * * asserts: * none * * returns: none */ void set_render_fx_mask(uint32_t new_mask); /* * get audio fx mask * args: * none * * asserts: * none * * returns: audio fx mask */ uint32_t get_audio_fx_mask(); /* * set audio fx mask * args: * new_mask - new audio fx filter mask * * asserts: * none * * returns: none */ void set_audio_fx_mask(uint32_t new_mask); /* * set software autofocus flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_soft_autofocus(int value); /* * set software focus flag * args: * value - flag value * * asserts: * none * * returns: none */ void set_soft_focus(int value); /* * checks if photo timed capture is on * args: * none * * asserts: * none * * returns: 1 if on; 0 if off */ int check_photo_timer(); /* * stops the photo timed capture * args: * none * * asserts: * none * * returns: none */ void stop_photo_timer(); /* * checks if video timed capture is on * args: * none * * asserts: * none * * returns: 1 if on; 0 if off */ int check_video_timer(); /* * reset video timer * args: * none * * asserts: * none * * returns: none */ void reset_video_timer(); /* * quit callback * args: * data - pointer to user data * * asserts: * none * * returns: error code */ int quit_callback(void *data); /* * sets the save image flag * args: * none * * asserts: * none * * returns: none */ void video_capture_save_image(); /* * get encoder status * args: * none * * asserts: * none * * returns: encoder status (1 -running; 0 -not started) */ int get_encoder_status(); /* * request format update * args: * none * * asserts: * none * * returns: none */ void request_format_update(); /* * create an audio context * args: * api - audio api * device - api device index (-1 use default) * * asserts: * none * * returns: pointer to audio context data */ audio_context_t *create_audio_context(int api, int device); /* * close the audio context * args: * none * * asserts: * none * * returns: none */ void close_audio_context(); /* * get audio context * args: * none * * asserts: * none * * returns: pointer to audio context data (or NULL if no audio) */ audio_context_t *get_audio_context(); /* * start the encoder thread * args: * none * * asserts: * none * * returns: error code */ int start_encoder_thread(); /* * stop the encoder thread * args: * none * * asserts: * none * * returns: error code */ int stop_encoder_thread(); /* * capture loop (should run in a separate thread) * args: * data - pointer to user data * * asserts: * device data is not null * * returns: pointer to return code */ void *capture_loop(void *data); #endif guvcview-2.0.2+debian/gview_audio/000077500000000000000000000000001256377215300171055ustar00rootroot00000000000000guvcview-2.0.2+debian/gview_audio/Makefile.am000066400000000000000000000015501256377215300211420ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # Public headers h_sources = gviewaudio.h c_sources = audio.c \ audio_fx.c \ core_time.c \ audio_portaudio.c if HAVE_PULSEAUDIO c_sources += audio_pulseaudio.c endif #Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWAUDIO_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES= libgviewaudio.la libgviewaudio_la_SOURCES= $(h_sources) $(c_sources) libgviewaudio_la_CFLAGS = $(GVIEWAUDIO_CFLAGS) \ $(PULSE_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewaudio_la_LIBADD= $(GVIEWAUDIO_LIBS) $(PULSE_LIBS) $(PTHREAD_LIBS) libgviewaudio_la_LDFLAGS= -version-info $(GVIEWAUDIO_LIBRARY_VERSION) -release $(GVIEWAUDIO_API_VERSION) guvcview-2.0.2+debian/gview_audio/Makefile.in000066400000000000000000000747241256377215300211700ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_PULSEAUDIO_TRUE@am__append_1 = audio_pulseaudio.c subdir = gview_audio DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(library_include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(library_includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libgviewaudio_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__libgviewaudio_la_SOURCES_DIST = gviewaudio.h audio.c audio_fx.c \ core_time.c audio_portaudio.c audio_pulseaudio.c am__objects_1 = @HAVE_PULSEAUDIO_TRUE@am__objects_2 = \ @HAVE_PULSEAUDIO_TRUE@ libgviewaudio_la-audio_pulseaudio.lo am__objects_3 = libgviewaudio_la-audio.lo libgviewaudio_la-audio_fx.lo \ libgviewaudio_la-core_time.lo \ libgviewaudio_la-audio_portaudio.lo $(am__objects_2) am_libgviewaudio_la_OBJECTS = $(am__objects_1) $(am__objects_3) libgviewaudio_la_OBJECTS = $(am_libgviewaudio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgviewaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libgviewaudio_la_CFLAGS) $(CFLAGS) \ $(libgviewaudio_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgviewaudio_la_SOURCES) DIST_SOURCES = $(am__libgviewaudio_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(library_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Public headers h_sources = gviewaudio.h c_sources = audio.c audio_fx.c core_time.c audio_portaudio.c \ $(am__append_1) #Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWAUDIO_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES = libgviewaudio.la libgviewaudio_la_SOURCES = $(h_sources) $(c_sources) libgviewaudio_la_CFLAGS = $(GVIEWAUDIO_CFLAGS) \ $(PULSE_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewaudio_la_LIBADD = $(GVIEWAUDIO_LIBS) $(PULSE_LIBS) $(PTHREAD_LIBS) libgviewaudio_la_LDFLAGS = -version-info $(GVIEWAUDIO_LIBRARY_VERSION) -release $(GVIEWAUDIO_API_VERSION) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_audio/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign gview_audio/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgviewaudio.la: $(libgviewaudio_la_OBJECTS) $(libgviewaudio_la_DEPENDENCIES) $(EXTRA_libgviewaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgviewaudio_la_LINK) -rpath $(libdir) $(libgviewaudio_la_OBJECTS) $(libgviewaudio_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_fx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_portaudio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewaudio_la-core_time.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgviewaudio_la-audio.lo: audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio.Tpo -c -o libgviewaudio_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio.Tpo $(DEPDIR)/libgviewaudio_la-audio.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio.c' object='libgviewaudio_la-audio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c libgviewaudio_la-audio_fx.lo: audio_fx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_fx.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_fx.Tpo -c -o libgviewaudio_la-audio_fx.lo `test -f 'audio_fx.c' || echo '$(srcdir)/'`audio_fx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_fx.Tpo $(DEPDIR)/libgviewaudio_la-audio_fx.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_fx.c' object='libgviewaudio_la-audio_fx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_fx.lo `test -f 'audio_fx.c' || echo '$(srcdir)/'`audio_fx.c libgviewaudio_la-core_time.lo: core_time.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-core_time.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-core_time.Tpo -c -o libgviewaudio_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-core_time.Tpo $(DEPDIR)/libgviewaudio_la-core_time.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_time.c' object='libgviewaudio_la-core_time.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c libgviewaudio_la-audio_portaudio.lo: audio_portaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_portaudio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_portaudio.Tpo -c -o libgviewaudio_la-audio_portaudio.lo `test -f 'audio_portaudio.c' || echo '$(srcdir)/'`audio_portaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_portaudio.Tpo $(DEPDIR)/libgviewaudio_la-audio_portaudio.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_portaudio.c' object='libgviewaudio_la-audio_portaudio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_portaudio.lo `test -f 'audio_portaudio.c' || echo '$(srcdir)/'`audio_portaudio.c libgviewaudio_la-audio_pulseaudio.lo: audio_pulseaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -MT libgviewaudio_la-audio_pulseaudio.lo -MD -MP -MF $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Tpo -c -o libgviewaudio_la-audio_pulseaudio.lo `test -f 'audio_pulseaudio.c' || echo '$(srcdir)/'`audio_pulseaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Tpo $(DEPDIR)/libgviewaudio_la-audio_pulseaudio.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_pulseaudio.c' object='libgviewaudio_la-audio_pulseaudio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewaudio_la_CFLAGS) $(CFLAGS) -c -o libgviewaudio_la-audio_pulseaudio.lo `test -f 'audio_pulseaudio.c' || echo '$(srcdir)/'`audio_pulseaudio.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-library_includeHEADERS: $(library_include_HEADERS) @$(NORMAL_INSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ done uninstall-library_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-library_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES \ install-library_includeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/gview_audio/audio.c000066400000000000000000000343641256377215300203640ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Audio library # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gviewaudio.h" #include "gview.h" #include "audio_portaudio.h" #if HAS_PULSEAUDIO #include "audio_pulseaudio.h" #endif /*audio device data mutex*/ static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; #define __PMUTEX &mutex #define AUDBUFF_NUM 80 /*number of audio buffers*/ #define AUDBUFF_FRAMES 1152 /*number of audio frames per buffer*/ static audio_buff_t *audio_buffers = NULL; /*pointer to buffers list*/ static int buffer_read_index = 0; /*current read index of buffer list*/ static int buffer_write_index = 0;/*current write index of buffer list*/ int verbosity = 0; static int audio_api = AUDIO_PORTAUDIO; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void audio_set_verbosity(int value) { verbosity = value; } /* * Lock the mutex * args: * none * * asserts: * none * * returns: none */ void audio_lock_mutex() { __LOCK_MUTEX( __PMUTEX ); } /* * Unlock the mutex * args: * none * * asserts: * none * * returns: none */ void audio_unlock_mutex() { __UNLOCK_MUTEX( __PMUTEX ); } /* * free audio buffers * args: * none * * asserts: * none * * returns: error code */ static int audio_free_buffers() { buffer_read_index = 0; buffer_write_index = 0; /*return if no buffers set*/ if(!audio_buffers) { if(verbosity > 0) fprintf(stderr,"AUDIO: can't free audio buffers (audio_free_buffers): audio_buffers is null\n"); return 0; } int i = 0; for(i = 0; i < AUDBUFF_NUM; ++i) { free(audio_buffers[i].data); } free(audio_buffers); audio_buffers = NULL; } /* * alloc a single audio buffer * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: pointer to newly allocate audio buffer or NULL on error * must be freed with audio_delete_buffer * data is allocated for float(32 bit) samples but can also store * int16 (16 bit) samples */ audio_buff_t *audio_get_buffer(audio_context_t *audio_ctx) { if(audio_ctx->capture_buff_size <= 0) { fprintf(stderr, "AUDIO: (get_buffer) invalid capture_buff_size(%i)\n", audio_ctx->capture_buff_size); return NULL; } audio_buff_t *audio_buff = calloc(1, sizeof(audio_buff_t)); if(audio_buff == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_get_buffer): %s\n", strerror(errno)); exit(-1); } audio_buff->data = calloc(audio_ctx->capture_buff_size, sizeof(sample_t)); if(audio_buff->data == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_get_buffer): %s\n", strerror(errno)); exit(-1); } return audio_buff; } /* * deletes a single audio buffer * args: * audio_buff - pointer to audio_buff_t data * * asserts: * none * * returns: none */ void audio_delete_buffer(audio_buff_t *audio_buff) { if(!audio_buff) return; if(audio_buff->data) free(audio_buff->data); free(audio_buff); } /* * alloc audio buffers * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: error code */ static int audio_init_buffers(audio_context_t *audio_ctx) { if(!audio_ctx) return -1; /*don't allocate if no audio*/ if(audio_api == AUDIO_NONE) { audio_buffers = NULL; return 0; } int i = 0; /*set the buffers size*/ if(!audio_ctx->capture_buff_size) audio_ctx->capture_buff_size = audio_ctx->channels * AUDBUFF_FRAMES; if(audio_ctx->capture_buff) free(audio_ctx->capture_buff); audio_ctx->capture_buff = calloc( audio_ctx->capture_buff_size, sizeof(sample_t)); if(audio_ctx->capture_buff == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); exit(-1); } /*free audio_buffers (if any)*/ audio_free_buffers; audio_buffers = calloc(AUDBUFF_NUM, sizeof(audio_buff_t)); if(audio_buffers == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); exit(-1); } for(i = 0; i < AUDBUFF_NUM; ++i) { audio_buffers[i].data = calloc( audio_ctx->capture_buff_size, sizeof(sample_t)); if(audio_buffers[i].data == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_buffers): %s\n", strerror(errno)); exit(-1); } audio_buffers[i].flag = AUDIO_BUFF_FREE; } return 0; } /* * fill a audio buffer data and move write index to next one * args: * audio_ctx - pointer to audio context data * ts - timestamp for end of data * * asserts: * audio_ctx is not null * * returns: none */ void audio_fill_buffer(audio_context_t *audio_ctx, int64_t ts) { /*assertions*/ assert(audio_ctx != NULL); if(verbosity > 3) printf("AUDIO: filling buffer ts:%" PRId64 "\n", ts); /*in nanosec*/ uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; uint64_t buffer_length = frame_length * (audio_ctx->capture_buff_size / audio_ctx->channels); audio_ctx->current_ts += buffer_length; /*buffer end time*/ audio_ctx->ts_drift = audio_ctx->current_ts - ts; /*get the current write indexed buffer flag*/ audio_lock_mutex(); int flag = audio_buffers[buffer_write_index].flag; audio_unlock_mutex(); if(flag == AUDIO_BUFF_USED) { fprintf(stderr, "AUDIO: write buffer(%i) is still in use - dropping data\n", buffer_write_index); return; } /*write max_frames and fill a buffer*/ memcpy(audio_buffers[buffer_write_index].data, audio_ctx->capture_buff, audio_ctx->capture_buff_size * sizeof(sample_t)); /*buffer begin time*/ audio_buffers[buffer_write_index].timestamp = audio_ctx->current_ts - buffer_length; audio_buffers[buffer_write_index].level_meter[0] = audio_ctx->capture_buff_level[0]; audio_buffers[buffer_write_index].level_meter[1] = audio_ctx->capture_buff_level[1]; audio_lock_mutex(); audio_buffers[buffer_write_index].flag = AUDIO_BUFF_USED; NEXT_IND(buffer_write_index, AUDBUFF_NUM); audio_unlock_mutex(); } /* saturate float samples to int16 limits*/ static int16_t clip_int16 (float in) { //int16_t out = (int16_t) (in < -32768) ? -32768 : (in > 32767) ? 32767 : in; long lout = lroundf(in); int16_t out = (lout < INT16_MIN) ? INT16_MIN : (lout > INT16_MAX) ? INT16_MAX: (int16_t) lout; return (out); } /* * get the next used buffer from the ring buffer * args: * audio_ctx - pointer to audio context * buff - pointer to an allocated audio buffer * type - type of data (SAMPLE_TYPE_[INT16|FLOAT]) * mask - audio fx mask * * asserts: * none * * returns: error code */ int audio_get_next_buffer(audio_context_t *audio_ctx, audio_buff_t *buff, int type, uint32_t mask) { audio_lock_mutex(); int flag = audio_buffers[buffer_read_index].flag; audio_unlock_mutex(); if(flag == AUDIO_BUFF_FREE) return 1; /*all done*/ /*aplly fx*/ audio_fx_apply(audio_ctx, (sample_t *) audio_buffers[buffer_read_index].data, mask); /*copy data into requested format type*/ int i = 0; switch(type) { case GV_SAMPLE_TYPE_FLOAT: { sample_t *my_data = (sample_t *) buff->data; memcpy( my_data, audio_buffers[buffer_read_index].data, audio_ctx->capture_buff_size * sizeof(sample_t)); break; } case GV_SAMPLE_TYPE_INT16: { int16_t *my_data = (int16_t *) buff->data; sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; for(i = 0; i < audio_ctx->capture_buff_size; ++i) { my_data[i] = clip_int16( (buff_p[i]) * INT16_MAX); } break; } case GV_SAMPLE_TYPE_FLOATP: { int j=0; float *my_data[audio_ctx->channels]; sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; for(j = 0; j < audio_ctx->channels; ++j) my_data[j] = (float *) (((float *) buff->data) + (j * audio_ctx->capture_buff_size/audio_ctx->channels)); for(i = 0; i < audio_ctx->capture_buff_size/audio_ctx->channels; ++i) for(j = 0; j < audio_ctx->channels; ++j) { my_data[j][i] = *buff_p++; } break; } case GV_SAMPLE_TYPE_INT16P: { int j=0; int16_t *my_data[audio_ctx->channels]; sample_t *buff_p = (sample_t *) audio_buffers[buffer_read_index].data; for(j = 0; j < audio_ctx->channels; ++j) my_data[j] = (int16_t *) (((int16_t *) buff->data) + (j * audio_ctx->capture_buff_size/audio_ctx->channels)); for(i = 0; i < audio_ctx->capture_buff_size/audio_ctx->channels; ++i) for(j = 0; j < audio_ctx->channels; ++j) { my_data[j][i] = clip_int16((*buff_p++) * INT16_MAX); } break; } } buff->timestamp = audio_buffers[buffer_read_index].timestamp; buff->level_meter[0] = audio_buffers[buffer_read_index].level_meter[0]; buff->level_meter[1] = audio_buffers[buffer_read_index].level_meter[1]; audio_lock_mutex(); audio_buffers[buffer_read_index].flag = AUDIO_BUFF_FREE; NEXT_IND(buffer_read_index, AUDBUFF_NUM); audio_unlock_mutex(); return 0; } /* * audio initialization * args: * api - audio API to use * (AUDIO_NONE, AUDIO_PORTAUDIO, AUDIO_PULSE, ...) * device - api device index to use (-1 - use api default) * * asserts: * none * * returns: pointer to audio context (NULL if AUDIO_NONE) */ audio_context_t *audio_init(int api, int device) { audio_context_t *audio_ctx = NULL; audio_api = api; switch(audio_api) { case AUDIO_NONE: break; #if HAS_PULSEAUDIO case AUDIO_PULSE: audio_ctx = audio_init_pulseaudio(); break; #endif case AUDIO_PORTAUDIO: default: audio_ctx = audio_init_portaudio(); break; } if(!audio_ctx) audio_api = AUDIO_NONE; /*set default api device*/ audio_set_device(audio_ctx, device); return audio_ctx; } /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index (from device list) to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_device(audio_context_t *audio_ctx, int index) { switch(audio_api) { case AUDIO_NONE: break; #if HAS_PULSEAUDIO case AUDIO_PULSE: audio_set_pulseaudio_device(audio_ctx, index); break; #endif case AUDIO_PORTAUDIO: default: audio_set_portaudio_device(audio_ctx, index); break; } } /* * start audio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start(audio_context_t *audio_ctx) { if(verbosity > 1) printf("AUDIO: starting audio capture\n"); /*assertions*/ assert(audio_ctx != NULL); /*alloc the ring buffer*/ audio_init_buffers(audio_ctx); /*reset timestamp values*/ audio_ctx->current_ts = 0; audio_ctx->last_ts = 0; audio_ctx->snd_begintime = 0; audio_ctx->ts_drift = 0; int err = 0; switch(audio_api) { case AUDIO_NONE: break; #if HAS_PULSEAUDIO case AUDIO_PULSE: err = audio_start_pulseaudio(audio_ctx); break; #endif case AUDIO_PORTAUDIO: default: err = audio_start_portaudio(audio_ctx); break; } return err; } /* * stop audio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop(audio_context_t *audio_ctx) { int err =0; switch(audio_api) { case AUDIO_NONE: break; #if HAS_PULSEAUDIO case AUDIO_PULSE: err = audio_stop_pulseaudio(audio_ctx); break; #endif case AUDIO_PORTAUDIO: default: err = audio_stop_portaudio(audio_ctx); break; } /*free the ring buffer (if any)*/ audio_free_buffers(); return err; } /* * close and clean audio context * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close(audio_context_t *audio_ctx) { audio_fx_close(); switch(audio_api) { case AUDIO_NONE: break; #if HAS_PULSEAUDIO case AUDIO_PULSE: audio_close_pulseaudio(audio_ctx); break; #endif case AUDIO_PORTAUDIO: default: audio_close_portaudio(audio_ctx); break; } if(audio_buffers != NULL) audio_free_buffers(); } guvcview-2.0.2+debian/gview_audio/audio.h000066400000000000000000000044771256377215300203730ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef AUDIO_H #define AUDIO_H #include #include #include "gviewaudio.h" /* * fill a audio buffer data and move write index to next one * args: * audio_ctx - pointer to audio context data * ts - timestamp for end of data * * asserts: * audio_ctx is not null * * returns: none */ void audio_fill_buffer(audio_context_t *audio_ctx, int64_t ts); #endif guvcview-2.0.2+debian/gview_audio/audio_fx.c000066400000000000000000000736271256377215300210660ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gviewaudio.h" #include "gview.h" #ifndef M_PI #define M_PI 3.14159265358979323846 #endif extern int verbosity; /*----------- structs for audio effects ------------*/ /*data for Butterworth filter (LP or HP)*/ typedef struct _fx_filt_data_t { sample_t buff_in1[2]; sample_t buff_in2[2]; sample_t buff_out1[2]; sample_t buff_out2[2]; float c; float a1; float a2; float a3; float b1; float b2; } fx_filt_data_t; /*data for Comb4 filter*/ typedef struct _fx_comb4_data_t { int buff_size1; int buff_size2; int buff_size3; int buff_size4; sample_t *CombBuff10; // four parallel comb filters - first channel sample_t *CombBuff11; // four parallel comb filters - second channel sample_t *CombBuff20; // four parallel comb filters - first channel sample_t *CombBuff21; // four parallel comb filters - second channel sample_t *CombBuff30; // four parallel comb filters - first channel sample_t *CombBuff31; // four parallel comb filters - second channel sample_t *CombBuff40; // four parallel comb filters - first channel sample_t *CombBuff41; // four parallel comb filters - second channel int CombIndex1; //comb filter 1 index int CombIndex2; //comb filter 2 index int CombIndex3; //comb filter 3 index int CombIndex4; //comb filter 4 index } fx_comb4_data_t; /* data for delay*/ typedef struct _fx_delay_data_t { int buff_size; sample_t *delayBuff1; // delay buffer 1 - first channel sample_t *delayBuff2; // delay buffer 2 - second channel (stereo) int delayIndex; // delay buffer index } fx_delay_data_t; /* data for WahWah effect*/ typedef struct _fx_wah_data_t { float lfoskip; unsigned long skipcount; float xn1; float xn2; float yn1; float yn2; float b0; float b1; float b2; float a0; float a1; float a2; float phase; } fx_wah_data_t; typedef struct _fx_rate_data_t { sample_t *rBuff1; sample_t *rBuff2; sample_t *wBuff1; sample_t *wBuff2; int wSize; int numsamples; } fx_rate_data_t; typedef struct _audio_fx_t { fx_delay_data_t *ECHO; fx_delay_data_t *AP1; fx_comb4_data_t *COMB4; fx_filt_data_t *HPF; fx_filt_data_t *LPF1; fx_rate_data_t *RT1; fx_wah_data_t *wahData; } audio_fx_t; /*audio fx data*/ static audio_fx_t *aud_fx = NULL; /* * initialize audio fx data * args: * none * * asserts: * none * * returns: none */ static void audio_fx_init () { aud_fx = calloc(1, sizeof(audio_fx_t)); if(aud_fx == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_init): %s\n", strerror(errno)); exit(-1); } /*Echo effect data */ aud_fx->ECHO = NULL; /* 4 parallel comb filters data*/ aud_fx->COMB4 = NULL; /*all pass 1 filter data*/ aud_fx->AP1 = NULL; /*WahWah effect data*/ aud_fx->wahData = NULL; /*high pass filter data*/ aud_fx->HPF = NULL; /*rate transposer*/ aud_fx->RT1 = NULL; /*low pass filter*/ aud_fx->LPF1 = NULL; } /* * clip float samples [-1.0 ; 1.0] * args: * in - float sample * * asserts: * none * * returns: float sample */ static float clip_float (float in) { in = (in < -1.0) ? -1.0 : (in > 1.0) ? 1.0 : in; return in; } /* * Butterworth Filter for HP or LP * out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) * args: * FILT - pointer to fx_filt_data_t * Buff - sampe buffer * NumSamples - samples in buffer * channels - number of audio channels */ static void Butt(fx_filt_data_t *FILT, sample_t *Buff, int NumSamples, int channels) { int index = 0; for (index = 0; index < NumSamples; index = index + channels) { sample_t out = FILT->a1 * Buff[index] + FILT->a2 * FILT->buff_in1[0] + FILT->a3 * FILT->buff_in1[1] - FILT->b1 * FILT->buff_out1[0] - FILT->b2 * FILT->buff_out1[1]; FILT->buff_in1[1] = FILT->buff_in1[0]; //in(n-2) = in(n-1) FILT->buff_in1[0] = Buff[index]; // in(n-1) = in FILT->buff_out1[1] = FILT->buff_out1[0]; //out(n-2) = out(n-1) FILT->buff_out1[0] = out; //out(n-1) = out Buff[index] = clip_float(out); /*process second channel*/ if(channels > 1) { out = FILT->a1 * Buff[index+1] + FILT->a2 * FILT->buff_in2[0] + FILT->a3 * FILT->buff_in2[1] - FILT->b1 * FILT->buff_out2[0] - FILT->b2 * FILT->buff_out2[1]; FILT->buff_in2[1] = FILT->buff_in2[0]; //in(n-2) = in(n-1) FILT->buff_in2[0] = Buff[index+1]; // in(n-1) = in FILT->buff_out2[1] = FILT->buff_out2[0]; //out(n-2) = out(n-1) FILT->buff_out2[0] = out; //out(n-1) = out Buff[index+1] = clip_float(out); } } } /* * HP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) * f - cuttof freq., from ~0 Hz to SampleRate/2 - though many synths seem to filter only up to SampleRate/4 * r = rez amount, from sqrt(2) to ~ 0.1 * * c = tan(pi * f / sample_rate); * a1 = 1.0 / ( 1.0 + r * c + c * c); * a2 = -2*a1; * a3 = a1; * b1 = 2.0 * ( c*c - 1.0) * a1; * b2 = ( 1.0 - r * c + c * c) * a1; * args: * audio_ctx - pointer to audio context * data -pointer to audio buffer to be processed * cutoff_freq - filter cut off frequency * res - rez amount * * asserts: * none * * returns: none */ static void HPF(audio_context_t *audio_ctx, sample_t *data, int cutoff_freq, float res) { if(aud_fx->HPF == NULL) { float inv_samprate = 1.0 / audio_ctx->samprate; aud_fx->HPF = calloc(1, sizeof(fx_filt_data_t)); if(aud_fx->HPF == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (HPF): %s\n", strerror(errno)); exit(-1); } aud_fx->HPF->c = tan(M_PI * cutoff_freq * inv_samprate); aud_fx->HPF->a1 = 1.0 / (1.0 + (res * aud_fx->HPF->c) + (aud_fx->HPF->c * aud_fx->HPF->c)); aud_fx->HPF->a2 = -2.0 * aud_fx->HPF->a1; aud_fx->HPF->a3 = aud_fx->HPF->a1; aud_fx->HPF->b1 = 2.0 * ((aud_fx->HPF->c * aud_fx->HPF->c) - 1.0) * aud_fx->HPF->a1; aud_fx->HPF->b2 = (1.0 - (res * aud_fx->HPF->c) + (aud_fx->HPF->c * aud_fx->HPF->c)) * aud_fx->HPF->a1; } Butt(aud_fx->HPF, data, audio_ctx->capture_buff_size, audio_ctx->channels); } /* * LP Filter: out(n) = a1 * in + a2 * in(n-1) + a3 * in(n-2) - b1*out(n-1) - b2*out(n-2) * f - cuttof freq., from ~0 Hz to SampleRate/2 - * though many synths seem to filter only up to SampleRate/4 * r = rez amount, from sqrt(2) to ~ 0.1 * * c = 1.0 / tan(pi * f / sample_rate); * a1 = 1.0 / ( 1.0 + r * c + c * c); * a2 = 2* a1; * a3 = a1; * b1 = 2.0 * ( 1.0 - c*c) * a1; * b2 = ( 1.0 - r * c + c * c) * a1; * * args: * audio_ctx - pointer to audio context * data -pointer to audio buffer to be processed * cutoff_freq - filter cut off frequency * res - rez amount * * asserts: * none * * returns: none */ static void LPF(audio_context_t *audio_ctx, sample_t *data, float cutoff_freq, float res) { if(aud_fx->LPF1 == NULL) { aud_fx->LPF1 = calloc(1, sizeof(fx_filt_data_t)); if(aud_fx->LPF1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (LPF): %s\n", strerror(errno)); exit(-1); } aud_fx->LPF1->c = 1.0 / tan(M_PI * cutoff_freq / audio_ctx->samprate); aud_fx->LPF1->a1 = 1.0 / (1.0 + (res * aud_fx->LPF1->c) + (aud_fx->LPF1->c * aud_fx->LPF1->c)); aud_fx->LPF1->a2 = 2.0 * aud_fx->LPF1->a1; aud_fx->LPF1->a3 = aud_fx->LPF1->a1; aud_fx->LPF1->b1 = 2.0 * (1.0 - (aud_fx->LPF1->c * aud_fx->LPF1->c)) * aud_fx->LPF1->a1; aud_fx->LPF1->b2 = (1.0 - (res * aud_fx->LPF1->c) + (aud_fx->LPF1->c * aud_fx->LPF1->c)) * aud_fx->LPF1->a1; } Butt(aud_fx->LPF1, data, audio_ctx->capture_buff_size, audio_ctx->channels); } /* Non-linear amplifier with soft distortion curve. * args: * input - sample input * * asserts: * none * * returns: processed sample */ static sample_t CubicAmplifier( sample_t input ) { sample_t out; float temp; if( input < 0 ) /*silence*/ { temp = input + 1.0f; out = (temp * temp * temp) - 1.0f; } else { temp = input - 1.0f; out = (temp * temp * temp) + 1.0f; } return clip_float(out); } /* * four paralell Comb filters for reverb * args: * audio_ctx - audio context * data - audio buffer to be processed * delay1_ms - delay for filter 1 * delay2_ms - delay for filter 2 * delay3_ms - delay for filter 3 * delay4_ms - delay for filter 4 * gain1 - feed gain for filter 1 * gain2 - feed gain for filter 2 * gain3 - feed gain for filter 3 * gain4 - feed gain for filter 4 * in_gain - input line gain * * asserts: * none * * returns: none */ static void CombFilter4 (audio_context_t *audio_ctx, sample_t *data, int delay1_ms, int delay2_ms, int delay3_ms, int delay4_ms, float gain1, float gain2, float gain3, float gain4, float in_gain) { int samp=0; /*buff_size in samples*/ if (aud_fx->COMB4 == NULL) { aud_fx->COMB4 = calloc(1, sizeof(fx_comb4_data_t)); if(aud_fx->COMB4 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } /*buff_size in samples*/ aud_fx->COMB4->buff_size1 = (int) delay1_ms * (audio_ctx->samprate * 0.001); aud_fx->COMB4->buff_size2 = (int) delay2_ms * (audio_ctx->samprate * 0.001); aud_fx->COMB4->buff_size3 = (int) delay3_ms * (audio_ctx->samprate * 0.001); aud_fx->COMB4->buff_size4 = (int) delay4_ms * (audio_ctx->samprate * 0.001); aud_fx->COMB4->CombBuff10 = calloc(aud_fx->COMB4->buff_size1, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff10 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff20 = calloc(aud_fx->COMB4->buff_size2, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff20 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff30 = calloc(aud_fx->COMB4->buff_size3, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff30 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff40 = calloc(aud_fx->COMB4->buff_size4, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff40 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff11 = NULL; aud_fx->COMB4->CombBuff21 = NULL; aud_fx->COMB4->CombBuff31 = NULL; aud_fx->COMB4->CombBuff41 = NULL; if(audio_ctx->channels > 1) { aud_fx->COMB4->CombBuff11 = calloc(aud_fx->COMB4->buff_size1, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff11 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff21 = calloc(aud_fx->COMB4->buff_size2, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff21 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff31 = calloc(aud_fx->COMB4->buff_size3, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff31 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } aud_fx->COMB4->CombBuff41 = calloc(aud_fx->COMB4->buff_size4, sizeof(sample_t)); if(aud_fx->COMB4->CombBuff41 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (CombFilter4): %s\n", strerror(errno)); exit(-1); } } } for(samp = 0; samp < audio_ctx->capture_buff_size; samp = samp + audio_ctx->channels) { sample_t out1 = in_gain * data[samp] + gain1 * aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1]; sample_t out2 = in_gain * data[samp] + gain2 * aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2]; sample_t out3 = in_gain * data[samp] + gain3 * aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3]; sample_t out4 = in_gain * data[samp] + gain4 * aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4]; aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1] = data[samp] + gain1 * aud_fx->COMB4->CombBuff10[aud_fx->COMB4->CombIndex1]; aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2] = data[samp] + gain2 * aud_fx->COMB4->CombBuff20[aud_fx->COMB4->CombIndex2]; aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3] = data[samp] + gain3 * aud_fx->COMB4->CombBuff30[aud_fx->COMB4->CombIndex3]; aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4] = data[samp] + gain4 * aud_fx->COMB4->CombBuff40[aud_fx->COMB4->CombIndex4]; data[samp] = clip_float(out1 + out2 + out3 + out4); /*if stereo process second channel */ if(audio_ctx->channels > 1) { out1 = in_gain * data[samp+1] + gain1 * aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1]; out2 = in_gain * data[samp+1] + gain2 * aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2]; out3 = in_gain * data[samp+1] + gain3 * aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3]; out4 = in_gain * data[samp+1] + gain4 * aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4]; aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1] = data[samp+1] + gain1 * aud_fx->COMB4->CombBuff11[aud_fx->COMB4->CombIndex1]; aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2] = data[samp+1] + gain2 * aud_fx->COMB4->CombBuff21[aud_fx->COMB4->CombIndex2]; aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3] = data[samp+1] + gain3 * aud_fx->COMB4->CombBuff31[aud_fx->COMB4->CombIndex3]; aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4] = data[samp+1] + gain4 * aud_fx->COMB4->CombBuff41[aud_fx->COMB4->CombIndex4]; data[samp+1] = clip_float(out1 + out2 + out3 + out4); } if(++(aud_fx->COMB4->CombIndex1) >= aud_fx->COMB4->buff_size1) aud_fx->COMB4->CombIndex1=0; if(++(aud_fx->COMB4->CombIndex2) >= aud_fx->COMB4->buff_size2) aud_fx->COMB4->CombIndex2=0; if(++(aud_fx->COMB4->CombIndex3) >= aud_fx->COMB4->buff_size3) aud_fx->COMB4->CombIndex3=0; if(++(aud_fx->COMB4->CombIndex4) >= aud_fx->COMB4->buff_size4) aud_fx->COMB4->CombIndex4=0; } } /* * All pass filter * args: * AP - pointer to fx_delay_data_t * Buff -pointer to sample buffer * NumSamples - number of samples in buffer * channels -number of audio channels * gain- filter gain * * asserts: * none * * returns: none */ static void all_pass (fx_delay_data_t *AP, sample_t *Buff, int NumSamples, int channels, float gain) { int samp = 0; float inv_gain = 1.0 / gain; for(samp = 0; samp < NumSamples; samp += channels) { AP->delayBuff1[AP->delayIndex] = Buff[samp] + (gain * AP->delayBuff1[AP->delayIndex]); Buff[samp] = ((AP->delayBuff1[AP->delayIndex] * (1 - gain*gain)) - Buff[samp]) * inv_gain; if(channels > 1) { AP->delayBuff2[AP->delayIndex] = Buff[samp+1] + (gain * AP->delayBuff2[AP->delayIndex]); Buff[samp+1] = ((AP->delayBuff2[AP->delayIndex] * (1 - gain*gain)) - Buff[samp+1]) * inv_gain; } if(++(AP->delayIndex) >= AP->buff_size) AP->delayIndex=0; } } /* * All pass for reverb * args: * audio_ctx - audio context * data - audio buffer to be processed * delay_ms - delay in ms * gain - filter gain * * asserts: * none * * returns: none */ static void all_pass1 (audio_context_t *audio_ctx, sample_t *data, int delay_ms, float gain) { if(aud_fx->AP1 == NULL) { aud_fx->AP1 = calloc(1, sizeof(fx_delay_data_t)); if(aud_fx->AP1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); exit(-1); } aud_fx->AP1->buff_size = (int) delay_ms * (audio_ctx->samprate * 0.001); aud_fx->AP1->delayBuff1 = calloc(aud_fx->AP1->buff_size, sizeof(sample_t)); if(aud_fx->AP1->delayBuff1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); exit(-1); } aud_fx->AP1->delayBuff2 = NULL; if(audio_ctx->channels > 1) { aud_fx->AP1->delayBuff2 = calloc(aud_fx->AP1->buff_size, sizeof(sample_t)); if(aud_fx->AP1->delayBuff2 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (all_pass1): %s\n", strerror(errno)); exit(-1); } } } all_pass (aud_fx->AP1, data, audio_ctx->capture_buff_size, audio_ctx->channels, gain); } /* * reduce number of samples with linear interpolation * rate - rate of samples to remove [1,...[ * rate = 1-> XXX (splits channels) 2 -> X0X0X 3 -> X00X00X 4 -> X000X000X * args: * RT - pointer to fx_rate_data_t * Buff - pointer to sample buffer * rate - rate of samples to remove * NumSamples - samples in buffer * channels - audio channels * * asserts: * * returns: none */ static void change_rate_less(fx_rate_data_t *RT, sample_t *Buff, int rate, int NumSamples, int channels) { int samp = 0; int n = 0, i = 0; for (samp = 0; samp < NumSamples; samp += channels) { if (n==0) { RT->rBuff1[i] = Buff[samp]; if(channels > 1) RT->rBuff2[i] = Buff[samp + 1]; i++; } if(++n >= rate) n=0; } RT->numsamples = i; } /* * increase audio tempo by adding audio windows of wtime_ms in given rate * rate: 2 -> [w1..w2][w1..w2][w2..w3][w2..w3] 3-> [w1..w2][w1..w2][w1..w2][w2..w3][w2..w3][w2..w3] * args: * audio_ctx - audio context * data - audio buffer to be processed * rate -rate of added windows * wtime_ms - window time in ms * * asserts: * none * * returns: none */ static void change_tempo_more(audio_context_t *audio_ctx, sample_t *data, int rate, int wtime_ms) { int samp = 0; int i = 0; int r = 0; int index = 0; if(aud_fx->RT1->wBuff1 == NULL) { aud_fx->RT1->wSize = wtime_ms * audio_ctx->samprate * 0.001; aud_fx->RT1->wBuff1 = calloc(aud_fx->RT1->wSize, sizeof(sample_t)); if(aud_fx->RT1->wBuff1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (change_tempo_more): %s\n", strerror(errno)); exit(-1); } if (audio_ctx->channels >1) { aud_fx->RT1->wBuff2 = calloc(aud_fx->RT1->wSize, sizeof(sample_t)); if(aud_fx->RT1->wBuff2 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (change_tempo_more): %s\n", strerror(errno)); exit(-1); } } } //printf("samples = %i\n", data->RT1->numsamples); for(samp = 0; samp < aud_fx->RT1->numsamples; samp++) { aud_fx->RT1->wBuff1[i] = aud_fx->RT1->rBuff1[samp]; if(audio_ctx->channels > 1) aud_fx->RT1->wBuff2[i] = aud_fx->RT1->rBuff2[samp]; if((++i) > aud_fx->RT1->wSize) { for (r = 0; r < rate; r++) { for(i = 0; i < aud_fx->RT1->wSize; i++) { data[index] = aud_fx->RT1->wBuff1[i]; if (audio_ctx->channels > 1) data[index +1] = aud_fx->RT1->wBuff2[i]; index += audio_ctx->channels; } } i = 0; } } } #define FUZZ(x) CubicAmplifier(CubicAmplifier(CubicAmplifier(CubicAmplifier(x)))) /* * Fuzz distortion * args: * audio_ctx - audio context * data - audio buffer to be processed * * asserts: * audio_ctx is not null * * returns: none */ static void audio_fx_fuzz (audio_context_t *audio_ctx, sample_t *data) { /*assertions*/ assert(audio_ctx != NULL); int samp=0; for(samp = 0; samp < audio_ctx->capture_buff_size; samp++) data[samp] = FUZZ(data[samp]); HPF(audio_ctx, data, 1000, 0.9); } /* * Echo effect * args: * audio_ctx - audio context * data - audio buffer to be processed * delay_ms - echo delay in ms (e.g: 300) * decay - feedback gain (<1) (e.g: 0.5) * * asserts: * audio_ctx is not null * * returns: none */ static void audio_fx_echo(audio_context_t *audio_ctx, sample_t *data, int delay_ms, float decay) { /*assertions*/ assert(audio_ctx != NULL); int samp = 0; if(aud_fx->ECHO == NULL) { aud_fx->ECHO = calloc(1, sizeof(fx_delay_data_t)); if(aud_fx->ECHO == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); exit(-1); } aud_fx->ECHO->buff_size = (int) delay_ms * audio_ctx->samprate * 0.001; aud_fx->ECHO->delayBuff1 = calloc(aud_fx->ECHO->buff_size, sizeof(sample_t)); if(aud_fx->ECHO->delayBuff1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); exit(-1); } aud_fx->ECHO->delayBuff2 = NULL; if(audio_ctx->channels > 1) { aud_fx->ECHO->delayBuff2 = calloc(aud_fx->ECHO->buff_size, sizeof(sample_t)); if(aud_fx->ECHO->delayBuff2 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_echo): %s\n", strerror(errno)); exit(-1); } } } for(samp = 0; samp < audio_ctx->capture_buff_size; samp = samp + audio_ctx->channels) { sample_t out = (0.7 * data[samp]) + (0.3 * aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex]); aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex] = data[samp] + (aud_fx->ECHO->delayBuff1[aud_fx->ECHO->delayIndex] * decay); data[samp] = clip_float(out); /*if stereo process second channel in separate*/ if (audio_ctx->channels > 1) { out = (0.7 * data[samp+1]) + (0.3 * aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex]); aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex] = data[samp] + (aud_fx->ECHO->delayBuff2[aud_fx->ECHO->delayIndex] * decay); data[samp+1] = clip_float(out); } if(++(aud_fx->ECHO->delayIndex) >= aud_fx->ECHO->buff_size) aud_fx->ECHO->delayIndex=0; } } /* * Reverb effect * args: * audio_ctx - audio context * data - audio buffer to be processed * delay_ms - reverb delay in ms * * asserts: * audio_ctx is not null * * returns: none */ static void audio_fx_reverb (audio_context_t *audio_ctx, sample_t *data, int delay_ms) { /*assertions*/ assert(audio_ctx != NULL); /*4 parallel comb filters*/ CombFilter4 (audio_ctx, data, delay_ms, delay_ms - 5, delay_ms -10, delay_ms -15, 0.55, 0.6, 0.5, 0.45, 0.7); /*all pass*/ all_pass1 (audio_ctx, data, delay_ms, 0.75); } #define lfoskipsamples 30 /* * WahWah effect * !!!!!!!!!!!!! IMPORTANT!!!!!!!!! : * depth and freqofs should be from 0(min) to 1(max) ! * res should be greater than 0 ! * args: * audio_ctx - audio context * data - audio buffer to be processed * freq - LFO frequency (1.5) * startphase - LFO startphase in RADIANS - usefull for stereo WahWah (0) * depth - Wah depth (0.7) * freqofs - Wah frequency offset (0.3) * res - Resonance (2.5) * * asserts: * audio_ctx is not null * * returns: none */ static void audio_fx_wahwah (audio_context_t *audio_ctx, sample_t *data, float freq, float startphase, float depth, float freqofs, float res) { /*assertions*/ assert(audio_ctx != NULL); float frequency, omega, sn, cs, alpha; if(aud_fx->wahData == NULL) { aud_fx->wahData = calloc(1, sizeof(fx_wah_data_t)); if(aud_fx->wahData == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_wahwah): %s\n", strerror(errno)); exit(-1); } aud_fx->wahData->lfoskip = freq * 2 * M_PI / audio_ctx->samprate; aud_fx->wahData->phase = startphase; /*if right channel set: phase += (float)M_PI;*/ } int samp = 0; for(samp = 0; samp < audio_ctx->capture_buff_size; samp++) { float in = data[samp]; if ((aud_fx->wahData->skipcount++) % lfoskipsamples == 0) { frequency = (1 + cos(aud_fx->wahData->skipcount * aud_fx->wahData->lfoskip + aud_fx->wahData->phase)) * 0.5; frequency = frequency * depth * (1 - freqofs) + freqofs; frequency = exp((frequency - 1) * 6); omega = M_PI * frequency; sn = sin(omega); cs = cos(omega); alpha = sn / (2 * res); aud_fx->wahData->b0 = (1 - cs) * 0.5; aud_fx->wahData->b1 = 1 - cs; aud_fx->wahData->b2 = (1 - cs) * 0.5; aud_fx->wahData->a0 = 1 + alpha; aud_fx->wahData->a1 = -2 * cs; aud_fx->wahData->a2 = 1 - alpha; } float out = (aud_fx->wahData->b0 * in + aud_fx->wahData->b1 * aud_fx->wahData->xn1 + aud_fx->wahData->b2 * aud_fx->wahData->xn2 - aud_fx->wahData->a1 * aud_fx->wahData->yn1 - aud_fx->wahData->a2 * aud_fx->wahData->yn2) / aud_fx->wahData->a0; aud_fx->wahData->xn2 = aud_fx->wahData->xn1; aud_fx->wahData->xn1 = in; aud_fx->wahData->yn2 = aud_fx->wahData->yn1; aud_fx->wahData->yn1 = out; data[samp] = clip_float(out); } } /* * change pitch effect * args: * audio_ctx - audio context * data - audio buffer to be processed * rate - window rate * * asserts: * audio_ctx is not null * * returns: none */ static void audio_fx_change_pitch (audio_context_t *audio_ctx, sample_t *data, int rate) { if(aud_fx->RT1 == NULL) { aud_fx->RT1 = calloc(1, sizeof(fx_rate_data_t)); if(aud_fx->RT1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); exit(-1); } aud_fx->RT1->wBuff1 = NULL; aud_fx->RT1->wBuff2 = NULL; aud_fx->RT1->rBuff1 = calloc(audio_ctx->capture_buff_size/audio_ctx->channels, sizeof(sample_t)); if(aud_fx->RT1->rBuff1 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); exit(-1); } aud_fx->RT1->rBuff2 = NULL; if(audio_ctx->channels > 1) { aud_fx->RT1->rBuff2 = calloc(audio_ctx->capture_buff_size/audio_ctx->channels, sizeof(sample_t)); if(aud_fx->RT1->rBuff2 == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_fx_change_pitch): %s\n", strerror(errno)); exit(-1); } } } change_rate_less(aud_fx->RT1, data, rate, audio_ctx->capture_buff_size, audio_ctx->channels); change_tempo_more(audio_ctx, data, rate, 20); LPF(audio_ctx, data, audio_ctx->samprate * 0.25, 0.9); } /* * clean fx_delay_data_t * args: * DELAY - pointer to fx_delay_data_t * * asserts: * none * * returns: none */ static void close_DELAY(fx_delay_data_t *DELAY) { if(DELAY != NULL) { free(DELAY->delayBuff1); free(DELAY->delayBuff2); free(DELAY); } } /* * clean fx_comb4_data_t * args: * COMB4 - pointer to fx_comb4_data_t * * asserts: * none * * returns: none */ static void close_COMB4(fx_comb4_data_t *COMB4) { if(COMB4 != NULL) { free(COMB4->CombBuff10); free(COMB4->CombBuff20); free(COMB4->CombBuff30); free(COMB4->CombBuff40); free(COMB4->CombBuff11); free(COMB4->CombBuff21); free(COMB4->CombBuff31); free(COMB4->CombBuff41); free(COMB4); } } /* * clean fx_filt_data_t * args: * FILT - pointer to fx_filt_data_t * * asserts: * none * * returns: none */ static void close_FILT(fx_filt_data_t *FILT) { if(FILT != NULL) { free(FILT); } } /* * clean fx_wah_data_t * args: * WAH - pointer to fx_wah_data_t * * asserts: * none * * returns: none */ static void close_WAHWAH(fx_wah_data_t *WAH) { if(WAH != NULL) { free(WAH); } } /* * clean reverb data * args: * none * * asserts: * none * * returns: none */ static void close_reverb() { close_DELAY(aud_fx->AP1); aud_fx->AP1 = NULL; close_COMB4(aud_fx->COMB4); aud_fx->COMB4 = NULL; } /* * clean pitch data * args: * none * * asserts: * none * * returns: none */ static void close_pitch () { if(aud_fx->RT1 != NULL) { free(aud_fx->RT1->rBuff1); free(aud_fx->RT1->rBuff2); free(aud_fx->RT1->wBuff1); free(aud_fx->RT1->wBuff2); free(aud_fx->RT1); aud_fx->RT1 = NULL; close_FILT(aud_fx->LPF1); aud_fx->LPF1 = NULL; } } /* * clean audio fx data * args: * none * * asserts: * none * * returns: none */ void audio_fx_close() { if(aud_fx == NULL) return; close_DELAY(aud_fx->ECHO); aud_fx->ECHO = NULL; close_reverb(); close_WAHWAH(aud_fx->wahData); aud_fx->wahData = NULL; close_FILT(aud_fx->HPF); aud_fx->HPF = NULL; close_pitch(); free(aud_fx); aud_fx = NULL; } /* * apply audio fx * args: * audio_ctx - pointer to audio context * proc_buff - pointer to audio buffer to process * mask - or'ed fx combination * * asserts: * none * * returns: none */ void audio_fx_apply(audio_context_t *audio_ctx, sample_t *data, uint32_t mask) { if(mask != AUDIO_FX_NONE) { if(verbosity > 2) printf("AUDIO: Apllying Fx (0x%x)\n", mask); if(aud_fx == NULL) audio_fx_init(); if(mask & AUDIO_FX_ECHO) audio_fx_echo(audio_ctx, data, 300, 0.5); else { close_DELAY(aud_fx->ECHO); aud_fx->ECHO = NULL; } if(mask & AUDIO_FX_REVERB) audio_fx_reverb(audio_ctx, data, 50); else close_reverb(); if(mask & AUDIO_FX_FUZZ) audio_fx_fuzz(audio_ctx, data); else { close_FILT(aud_fx->HPF); aud_fx->HPF = NULL; } if(mask & AUDIO_FX_WAHWAH) audio_fx_wahwah(audio_ctx, data, 1.5, 0, 0.7, 0.3, 2.5); else { close_WAHWAH(aud_fx->wahData); aud_fx->wahData = NULL; } if(mask & AUDIO_FX_DUCKY) audio_fx_change_pitch(audio_ctx, data, 2); else close_pitch(); } else audio_fx_close(); } guvcview-2.0.2+debian/gview_audio/audio_portaudio.c000066400000000000000000000365251256377215300224530ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gview.h" #include "audio.h" #include "core_time.h" #include "gviewaudio.h" extern int verbosity; static int sample_index = 0; #define DEFAULT_LATENCY_DURATION 100.0 /* * Portaudio record callback * args: * inputBuffer - pointer to captured input data (for recording) * outputBuffer - pointer ouput data (for playing - NOT USED) * framesPerBuffer - buffer size * timeInfo - pointer to time data (for timestamping) * statusFlags - stream status * userData - pointer to user data (audio context) * * asserts: * audio_ctx (userData) is not null * * returns: error code (0 ok) */ static int recordCallback ( const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags statusFlags, void *userData ) { audio_context_t *audio_ctx = (audio_context_t *) userData; /*asserts*/ assert(audio_ctx != NULL); if(audio_ctx->channels == 0) { fprintf(stderr, "AUDIO: (portaudio) recordCallback failed: channels = 0\n"); return (paContinue); } if(audio_ctx->samprate == 0) { fprintf(stderr, "AUDIO: (portaudio) recordCallback failed: samprate = 0\n"); return (paContinue); } uint32_t i = 0; sample_t *rptr = (sample_t*) inputBuffer; sample_t *capture_buff = (sample_t *) audio_ctx->capture_buff; unsigned long numSamples = framesPerBuffer * audio_ctx->channels; uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; /*in nanosec (is never 0)*/ PaTime ts_sec = timeInfo->inputBufferAdcTime; /*in seconds (double)*/ int64_t ts = ts_sec * NSEC_PER_SEC; /*in nanosec (monotonic time)*/ int64_t buff_ts = 0; /*determine the number of samples dropped*/ if(audio_ctx->last_ts <= 0) { audio_ctx->last_ts = ts; } if(statusFlags & paInputOverflow) { fprintf( stderr, "AUDIO: portaudio buffer overflow\n" ); int64_t d_ts = ts - audio_ctx->last_ts; uint32_t n_samples = (d_ts / frame_length) * audio_ctx->channels; for( i = 0; i < n_samples; ++i ) { capture_buff[sample_index] = 0; sample_index++; if(sample_index >= audio_ctx->capture_buff_size) { audio_fill_buffer(audio_ctx, audio_ctx->last_ts); sample_index = 0; } } if(verbosity > 1) printf("AUDIO: compensate overflow with %i silence samples\n", n_samples); } if(statusFlags & paInputUnderflow) fprintf( stderr, "AUDIO: portaudio buffer underflow\n" ); if(sample_index == 0) { audio_ctx->capture_buff_level[0] = 0; audio_ctx->capture_buff_level[1] = 0; } int chan = 0; /*store capture samples*/ for( i = 0; i < numSamples; ++i ) { capture_buff[sample_index] = inputBuffer ? *rptr++ : 0; sample_index++; /*store peak value*/ if(audio_ctx->capture_buff_level[chan] < capture_buff[sample_index]) audio_ctx->capture_buff_level[chan] = capture_buff[sample_index]; chan++; if(chan >= audio_ctx->channels) chan = 0; if(sample_index >= audio_ctx->capture_buff_size) { buff_ts = ts + ( i / audio_ctx->channels ) * frame_length; audio_fill_buffer(audio_ctx, buff_ts); /*reset*/ audio_ctx->capture_buff_level[0] = 0; audio_ctx->capture_buff_level[1] = 0; sample_index = 0; } } audio_ctx->last_ts = ts + (framesPerBuffer * frame_length); if(audio_ctx->stream_flag == AUDIO_STRM_OFF ) return (paComplete); /*capture stopped*/ else return (paContinue); /*still capturing*/ } /* * list audio devices for portaudio api * args: * audio_ctx - pointer to audio context data * asserts: * audio_ctx is not null * * returns: error code (0 ok) */ static int audio_portaudio_list_devices(audio_context_t *audio_ctx) { int numDevices; const PaDeviceInfo *deviceInfo; //reset device count audio_ctx->num_input_dev = 0; numDevices = Pa_GetDeviceCount(); if( numDevices < 0 ) { printf( "AUDIO: Audio disabled: Pa_CountDevices returned %i\n", numDevices ); } else { audio_ctx->device = 0; int it = 0; for( it=0; it < numDevices; it++ ) { deviceInfo = Pa_GetDeviceInfo( it ); if (verbosity > 0) printf( "--------------------------------------- device #%d\n", it ); /* Mark audio_ctx and API specific default devices*/ int defaultDisplayed = 0; /* with pulse, ALSA is now listed first and doesn't set a API default- 11-2009*/ if( it == Pa_GetDefaultInputDevice() ) { if (verbosity > 0) printf( "[ Default Input" ); defaultDisplayed = 1; audio_ctx->device = audio_ctx->num_input_dev;/*default index in array of input devs*/ } else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultInputDevice ) { const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); if (verbosity > 0) printf( "[ Default %s Input", hostInfo->name ); defaultDisplayed = 2; } /* OUTPUT device doesn't matter for capture*/ if( it == Pa_GetDefaultOutputDevice() ) { if (verbosity > 0) { printf( (defaultDisplayed ? "," : "[") ); printf( " Default Output" ); } defaultDisplayed = 3; } else if( it == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice ) { const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi ); if (verbosity > 0) { printf( (defaultDisplayed ? "," : "[") ); printf( " Default %s Output", hostInfo->name );/* OSS ALSA etc*/ } defaultDisplayed = 4; } if( defaultDisplayed!=0 ) if (verbosity > 0) printf( " ]\n" ); /* print device info fields */ if (verbosity > 0) { printf( "Name = %s\n", deviceInfo->name ); printf( "Host API = %s\n", Pa_GetHostApiInfo( deviceInfo->hostApi )->name ); printf( "Max inputs = %d", deviceInfo->maxInputChannels ); } /* INPUT devices (if it has input channels it's a capture device)*/ if (deviceInfo->maxInputChannels > 0) { audio_ctx->num_input_dev++; /*add device to list*/ audio_ctx->list_devices = realloc(audio_ctx->list_devices, audio_ctx->num_input_dev * sizeof(audio_device_t)); if(audio_ctx->list_devices == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_portaudio_list_devices): %s\n", strerror(errno)); exit(-1); } /*fill device data*/ audio_ctx->list_devices[audio_ctx->num_input_dev-1].id = it; strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].name, deviceInfo->name, 511); strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].description, deviceInfo->name, 255); audio_ctx->list_devices[audio_ctx->num_input_dev-1].channels = deviceInfo->maxInputChannels; audio_ctx->list_devices[audio_ctx->num_input_dev-1].samprate = deviceInfo->defaultSampleRate; audio_ctx->list_devices[audio_ctx->num_input_dev-1].high_latency = (double) deviceInfo->defaultHighInputLatency; audio_ctx->list_devices[audio_ctx->num_input_dev-1].low_latency = (double) deviceInfo->defaultLowInputLatency; } if (verbosity > 0) { printf( ", Max outputs = %d\n", deviceInfo->maxOutputChannels ); printf( "Def. low input latency = %8.3f\n", deviceInfo->defaultLowInputLatency ); printf( "Def. low output latency = %8.3f\n", deviceInfo->defaultLowOutputLatency ); printf( "Def. high input latency = %8.3f\n", deviceInfo->defaultHighInputLatency ); printf( "Def. high output latency = %8.3f\n", deviceInfo->defaultHighOutputLatency ); printf( "Def. sample rate = %8.2f\n", deviceInfo->defaultSampleRate ); } } if (verbosity > 0) printf("----------------------------------------------\n"); } /*set defaults*/ audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; return 0; } /* * init portaudio api * args: * none * * asserts: * none * * returns: pointer to audio context data * or NULL if error */ audio_context_t *audio_init_portaudio() { int pa_error = Pa_Initialize(); if(pa_error != paNoError) { fprintf(stderr,"AUDIO: Failed to Initialize Portaudio (Pa_Initialize returned %i)\n", pa_error); return NULL; } audio_context_t *audio_ctx = calloc(1, sizeof(audio_context_t)); if(audio_ctx == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_portaudio): %s\n", strerror(errno)); exit(-1); } if(audio_portaudio_list_devices(audio_ctx) != 0) { fprintf(stderr, "AUDIO: Portaudio failed to get audio device list\n"); free(audio_ctx); return NULL; } audio_ctx->api = AUDIO_PORTAUDIO; return audio_ctx; } /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_portaudio_device(audio_context_t *audio_ctx, int index) { /*assertions*/ assert(audio_ctx != NULL); if(index >= audio_ctx->num_input_dev) audio_ctx->device = audio_ctx->num_input_dev - 1; else if(index > 0 ) audio_ctx->device = index; audio_ctx->latency = audio_ctx->list_devices[audio_ctx->device].high_latency; audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; if(audio_ctx->channels > 2) audio_ctx->channels = 2;/*limit it to stereo input*/ audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; } /* * start portaudio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start_portaudio(audio_context_t *audio_ctx) { /*assertions*/ assert(audio_ctx != NULL); PaError err = paNoError; PaStream *stream = (PaStream *) audio_ctx->stream; if(stream) { if( !(Pa_IsStreamStopped( stream ))) { Pa_AbortStream( stream ); Pa_CloseStream( stream ); audio_ctx->stream = NULL; stream = audio_ctx->stream; } } PaStreamParameters inputParameters; inputParameters.device = audio_ctx->list_devices[audio_ctx->device].id; inputParameters.channelCount = audio_ctx->channels; inputParameters.sampleFormat = paFloat32; /*sample_t - float*/ inputParameters.suggestedLatency = audio_ctx->latency; /*DEFAULT_LATENCY_DURATION/1000.0;*/ inputParameters.hostApiSpecificStreamInfo = NULL; /*---------------------------- start recording Audio. ----------------------------- */ audio_ctx->snd_begintime = ns_time_monotonic(); audio_ctx->stream_flag = AUDIO_STRM_ON; err = Pa_OpenStream( &stream, /* stream */ &inputParameters, /* inputParameters */ NULL, /* outputParameters */ audio_ctx->samprate, /* sample rate */ paFramesPerBufferUnspecified,/* buffer in frames (use API optimal)*/ paNoFlag, /* PaNoFlag - clip and dhiter*/ recordCallback, /* sound callback */ audio_ctx ); /* callback userData */ if( err == paNoError ) { err = Pa_StartStream( stream ); audio_ctx->stream = (void *) stream; /* store stream pointer*/ } if( err != paNoError ) { fprintf(stderr, "AUDIO: An error occured while starting the portaudio API\n" ); fprintf(stderr, " Error number: %d\n", err ); fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); if(stream) Pa_AbortStream( stream ); audio_ctx->stream_flag = AUDIO_STRM_OFF; return(-1); } const PaStreamInfo* stream_info = Pa_GetStreamInfo (stream); if(verbosity > 1) printf("AUDIO: latency of %8.3f msec\n", 1000 * stream_info->inputLatency); return 0; } /* * stop portaudio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop_portaudio(audio_context_t *audio_ctx) { /*assertions*/ assert(audio_ctx != NULL); int ret = 0; int err = paNoError; audio_ctx->stream_flag = AUDIO_STRM_OFF; PaStream *stream = (PaStream *) audio_ctx->stream; /*stops and closes the audio stream*/ if(stream) { if(Pa_IsStreamActive( stream ) > 0) { printf("AUDIO: (portaudio) Aborting audio stream\n"); err = Pa_AbortStream( stream ); } else { printf("AUDIO: (portaudio) Stoping audio stream\n"); err = Pa_StopStream( stream ); } if( err != paNoError ) { fprintf(stderr, "AUDIO: (portaudio) An error occured while stoping the audio stream\n" ); fprintf(stderr, " Error number: %d\n", err ); fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); ret = -1; } printf("AUDIO: Closing audio stream...\n"); err = Pa_CloseStream( stream ); if( err != paNoError ) { fprintf(stderr, "AUDIO: (portaudio) An error occured while closing the audio stream\n" ); fprintf(stderr, " Error number: %d\n", err ); fprintf(stderr, " Error message: %s\n", Pa_GetErrorText( err ) ); ret = -1; } } else { fprintf(stderr, "AUDIO: (portaudio) Invalid stream pointer.\n"); ret = -2; } audio_ctx->stream = NULL; return ret; } /* * close and clean audio context for portaudio api * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close_portaudio(audio_context_t *audio_ctx) { Pa_Terminate(); if(audio_ctx == NULL) return; if(audio_ctx->list_devices != NULL); free(audio_ctx->list_devices); audio_ctx->list_devices = NULL; if(audio_ctx->capture_buff) free(audio_ctx->capture_buff); free(audio_ctx); } guvcview-2.0.2+debian/gview_audio/audio_portaudio.h000066400000000000000000000060731256377215300224530ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GVIEWAUDIO_PORTAUDIO_H #define GVIEWAUDIO_PORTAUDIO_H /* * init portaudio api * args: * none * * asserts: * none * * returns: pointer to audio context data * or NULL if error */ audio_context_t *audio_init_portaudio(); /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_portaudio_device(audio_context_t *audio_ctx, int index); /* * start portaudio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start_portaudio(audio_context_t *audio_ctx); /* * stop portaudio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop_portaudio(audio_context_t *audio_ctx); /* * close and clean audio context for portaudio api * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close_portaudio(audio_context_t *audio_ctx); #endifguvcview-2.0.2+debian/gview_audio/audio_pulseaudio.c000066400000000000000000000535041256377215300226130ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gview.h" #include "audio.h" #include "core_time.h" #include "gviewaudio.h" extern int verbosity; static int sample_index = 0; // From pulsecore/macro.h #define pa_memzero(x,l) (memset((x), 0, (l))) #define pa_zero(x) (pa_memzero(&(x), sizeof(x))) static pa_stream *recordstream = NULL; // pulse audio stream static pa_context *pa_ctx = NULL; //pulse context static uint32_t latency_ms = 15; // requested initial latency in milisec: 0 use max static pa_usec_t latency = 0; //real latency in usec (for timestamping) static int sink_index = 0; static int source_index = 0; static __THREAD_TYPE my_read_thread; /* * clean up and disconnect * args: * pa_ctx - pointer to pulse context * pa_ml - pointer to pulse mainloop * * asserts: * none * * returns: * none */ static void finish(pa_context *pa_ctx, pa_mainloop *pa_ml) { /* clean up and disconnect */ pa_context_disconnect(pa_ctx); pa_context_unref(pa_ctx); pa_mainloop_free(pa_ml); } /* * This callback gets called when our context changes state. * We really only care about when it's ready or if it has failed * args: * c -pointer to pulse context * data - pointer to user data * * asserts: * none * * retuns: none */ static void pa_state_cb(pa_context *c, void *data) { pa_context_state_t state; int *pa_ready = data; state = pa_context_get_state(c); switch (state) { // These are just here for reference case PA_CONTEXT_UNCONNECTED: case PA_CONTEXT_CONNECTING: case PA_CONTEXT_AUTHORIZING: case PA_CONTEXT_SETTING_NAME: default: break; case PA_CONTEXT_FAILED: case PA_CONTEXT_TERMINATED: *pa_ready = 2; break; case PA_CONTEXT_READY: *pa_ready = 1; break; } } /* * pa_mainloop will call this function when it's ready to tell us * about a source (input). * Since we're not threading when listing devices, * there's no need for mutexes on the devicelist structure * args: * c - pointer to pulse context * l - pointer to source info * eol - end of list * data - pointer to user data (audio context) * * asserts: * none * * returns: none */ static void pa_sourcelist_cb(pa_context *c, const pa_source_info *l, int eol, void *data) { audio_context_t *audio_ctx = (audio_context_t *) data; int channels = 1; /* * If eol is set to a positive number, * you're at the end of the list */ if (eol > 0) return; source_index++; if(l->sample_spec.channels <1) channels = 1; else channels = l->sample_spec.channels; double my_latency = 0.0; if(verbosity > 0) { printf("AUDIO: =======[ Input Device #%d ]=======\n", source_index); printf(" Description: %s\n", l->description); printf(" Name: %s\n", l->name); printf(" Index: %d\n", l->index); printf(" Channels: %d (default to: %d)\n", l->sample_spec.channels, channels); printf(" SampleRate: %d\n", l->sample_spec.rate); printf(" Latency: %llu (usec)\n", (long long unsigned) l->latency); printf(" Configured Latency: %llu (usec)\n", (long long unsigned) l->configured_latency); printf(" Card: %d\n", l->card); printf("\n"); } if(my_latency <= 0.0) my_latency = (double) latency_ms / 1000; if(l->monitor_of_sink == PA_INVALID_INDEX) { audio_ctx->num_input_dev++; /*add device to list*/ audio_ctx->list_devices = realloc(audio_ctx->list_devices, audio_ctx->num_input_dev * sizeof(audio_device_t)); if(audio_ctx->list_devices == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (pa_sourcelist_cb): %s\n", strerror(errno)); exit(-1); } /*fill device data*/ audio_ctx->list_devices[audio_ctx->num_input_dev-1].id = l->index; /*saves dev id*/ strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].name, l->name, 511); strncpy(audio_ctx->list_devices[audio_ctx->num_input_dev-1].description, l->description, 255); audio_ctx->list_devices[audio_ctx->num_input_dev-1].channels = channels; audio_ctx->list_devices[audio_ctx->num_input_dev-1].samprate = l->sample_spec.rate; audio_ctx->list_devices[audio_ctx->num_input_dev-1].low_latency = my_latency; /*in seconds*/ audio_ctx->list_devices[audio_ctx->num_input_dev-1].high_latency = my_latency; /*in seconds*/ } } /* * pa_mainloop will call this function when it's ready to tell us * about a source (input). * This callback is pretty much identical to the previous * but it will only print the output devices * args: * c - pointer to pulse context * l - pointer to sink info * eol - end of list * data - pointer to user data (audio context) * * asserts: * none * * returns: none */ static void pa_sinklist_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata) { //audio_context_t *audio_ctx = (audio_context_t *) data; /* * If eol is set to a positive number, * you're at the end of the list */ if (eol > 0) return; sink_index++; if(verbosity > 0) { printf("AUDIO: =======[ Output Device #%d ]=======\n", sink_index); printf(" Description: %s\n", l->description); printf(" Name: %s\n", l->name); printf(" Index: %d\n", l->index); printf(" Channels: %d\n", l->channel_map.channels); printf(" SampleRate: %d\n", l->sample_spec.rate); printf(" Latency: %llu (usec)\n", (long long unsigned) l->latency); printf(" Configured Latency: %llu (usec)\n", (long long unsigned) l->configured_latency); printf(" Card: %d\n", l->card); printf("\n"); } } /* * iterate the main loop until all devices are listed * args: * audio_ctx - pointer to audio context * * asserts: * audio_ctx is not null * * returns: error code */ static int pa_get_devicelist(audio_context_t *audio_ctx) { /*assertions*/ assert(audio_ctx != NULL); /* Define our pulse audio loop and connection variables */ pa_mainloop *pa_ml; pa_mainloop_api *pa_mlapi; pa_operation *pa_op = NULL; pa_context *pa_ctx; /* We'll need these state variables to keep track of our requests */ int state = 0; int pa_ready = 0; /* Create a mainloop API and connection to the default server */ pa_ml = pa_mainloop_new(); pa_mlapi = pa_mainloop_get_api(pa_ml); pa_ctx = pa_context_new(pa_mlapi, "getDevices"); /* This function connects to the pulse server */ if(pa_context_connect(pa_ctx, NULL, 0, NULL) < 0) { fprintf(stderr,"AUDIO: PULSE - unable to connect to server: pa_context_connect failed\n"); finish(pa_ctx, pa_ml); return -1; } /* * This function defines a callback so the server will tell us * it's state. * Our callback will wait for the state to be ready. * The callback will modify the variable to 1 so we know when we * have a connection and it's ready. * If there's an error, the callback will set pa_ready to 2 */ pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); /* * Now we'll enter into an infinite loop until we get the data * we receive or if there's an error */ for (;;) { /* * We can't do anything until PA is ready, * so just iterate the mainloop and continue */ if (pa_ready == 0) { pa_mainloop_iterate(pa_ml, 1, NULL); continue; } /* We couldn't get a connection to the server, so exit out */ if (pa_ready == 2) { finish(pa_ctx, pa_ml); return -1; } /* * At this point, we're connected to the server and ready * to make requests */ switch (state) { /* State 0: we haven't done anything yet */ case 0: /* * This sends an operation to the server. * pa_sinklist_cb is our callback function and a pointer * o our devicelist will be passed to the callback * (audio_ctx) The operation ID is stored in the * pa_op variable */ pa_op = pa_context_get_sink_info_list( pa_ctx, pa_sinklist_cb, (void *) audio_ctx); /* Update state for next iteration through the loop */ state++; break; case 1: /* * Now we wait for our operation to complete. * When it's complete our pa_output_devicelist is * filled out, and we move along to the next state */ if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) { pa_operation_unref(pa_op); /* * Now we perform another operation to get the * source(input device) list just like before. * This time we pass a pointer to our input structure */ pa_op = pa_context_get_source_info_list( pa_ctx, pa_sourcelist_cb, (void *) audio_ctx); /* Update the state so we know what to do next */ state++; } break; case 2: if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) { /* * Now we're done, * clean up and disconnect and return */ pa_operation_unref(pa_op); finish(pa_ctx, pa_ml); return 0; } break; default: /* We should never see this state */ printf("AUDIO: Pulseaudio in state %d\n", state); return -1; } /* * Iterate the main loop and go again. The second argument is whether * or not the iteration should block until something is ready to be * done. Set it to zero for non-blocking. */ pa_mainloop_iterate(pa_ml, 1, NULL); } return 0; } /* * update pulseaudio latency * args: * s - pointer to pa_stream * * asserts: * none * * returns:none */ static void get_latency(pa_stream *s) { pa_usec_t l; int negative; pa_stream_get_timing_info(s); if (pa_stream_get_latency(s, &l, &negative) != 0) { fprintf(stderr, "AUDIO: Pulseaudio pa_stream_get_latency() failed\n"); return; } //latency = l * (negative?-1:1); latency = l; /*can only be negative in monitoring streams*/ //printf("AUDIO: pulseaudio latency is %0.0f usec \r", (float)latency); } /* * audio record callback * args: * s - pointer to pa_stream * length - buffer length * data - pointer to user data * * asserts: * none * * returns: none */ static void stream_request_cb(pa_stream *s, size_t length, void *data) { audio_context_t *audio_ctx = (audio_context_t *) data; if(audio_ctx->channels == 0) { fprintf(stderr, "AUDIO: (pulseaudio) stream_request_cb failed: channels = 0\n"); return; } if(audio_ctx->samprate == 0) { fprintf(stderr, "AUDIO: (pulseaudio) stream_request_cb failed: samprate = 0\n"); return; } uint64_t frame_length = NSEC_PER_SEC / audio_ctx->samprate; /*in nanosec*/ int64_t ts = 0; int64_t buff_ts = 0; uint32_t i = 0; while (pa_stream_readable_size(s) > 0) { const void *inputBuffer; size_t length; /*read from stream*/ if (pa_stream_peek(s, &inputBuffer, &length) < 0) { fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_peek() failed\n"); return; } if(length == 0) { fprintf(stderr, "AUDIO: (pulseaudio) empty buffer!\n"); return; /*buffer is empty*/ } get_latency(s); ts = ns_time_monotonic() - (latency * 1000); if(audio_ctx->last_ts <= 0) audio_ctx->last_ts = ts; uint32_t numSamples = (uint32_t) length / sizeof(sample_t); const sample_t *rptr = (const sample_t*) inputBuffer; sample_t *capture_buff = (sample_t *) audio_ctx->capture_buff; int chan = 0; /*store capture samples or silence if inputBuffer == NULL (hole)*/ for( i = 0; i < numSamples; ++i ) { capture_buff[sample_index] = inputBuffer ? *rptr++ : 0; sample_index++; /*store peak value*/ if(audio_ctx->capture_buff_level[chan] < capture_buff[sample_index]) audio_ctx->capture_buff_level[chan] = capture_buff[sample_index]; chan++; if(chan >= audio_ctx->channels) chan = 0; if(sample_index >= audio_ctx->capture_buff_size) { buff_ts = ts + ( i / audio_ctx->channels ) * frame_length; audio_fill_buffer(audio_ctx, buff_ts); /*reset*/ audio_ctx->capture_buff_level[0] = 0; audio_ctx->capture_buff_level[1] = 0; sample_index = 0; } } pa_stream_drop(s); /*clean the samples*/ } } /* * Iterate the main loop while recording is on. * This function runs under it's own thread called by audio_pulse_start * args: * data - pointer to user data (audio context) * * asserts: * data is not null * * returns: pointer to error code */ static void *pulse_read_audio(void *data) { audio_context_t *audio_ctx = (audio_context_t *) data; /*assertions*/ assert(audio_ctx != NULL); if(verbosity > 0) printf("AUDIO: (pulseaudio) read thread started\n"); pa_mainloop *pa_ml; pa_mainloop_api *pa_mlapi; pa_buffer_attr bufattr; pa_sample_spec ss; pa_stream_flags_t flags = 0; int r; int pa_ready = 0; /* Create a mainloop API and connection to the default server */ pa_ml = pa_mainloop_new(); pa_mlapi = pa_mainloop_get_api(pa_ml); pa_ctx = pa_context_new(pa_mlapi, "guvcview Pulse API"); if(pa_context_connect(pa_ctx, NULL, 0, NULL) < 0) { fprintf(stderr,"AUDIO: PULSE - unable to connect to server: pa_context_connect failed\n"); finish(pa_ctx, pa_ml); return ((void *) -1); } /* * This function defines a callback so the server will tell us it's state. * Our callback will wait for the state to be ready. The callback will * modify the variable to 1 so we know when we have a connection and it's * ready. * If there's an error, the callback will set pa_ready to 2 */ pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready); /* * This function defines a time event callback (called every TIME_EVENT_USEC) */ //pa_context_rttime_new(pa_ctx, pa_rtclock_now() + TIME_EVENT_USEC, time_event_callback, NULL); /* * We can't do anything until PA is ready, so just iterate the mainloop * and continue */ while (pa_ready == 0) { pa_mainloop_iterate(pa_ml, 1, NULL); } if (pa_ready == 2) { finish(pa_ctx, pa_ml); return ((void *) -1); } /* set the sample spec (frame rate, channels and format) */ ss.rate = audio_ctx->samprate; ss.channels = audio_ctx->channels; ss.format = PA_SAMPLE_FLOAT32LE; /*for PCM -> PA_SAMPLE_S16LE*/ recordstream = pa_stream_new(pa_ctx, "Record", &ss, NULL); if (!recordstream) fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_new failed (chan:%d rate:%d)\n", ss.channels, ss.rate); /* define the callbacks */ pa_stream_set_read_callback(recordstream, stream_request_cb, (void *) audio_ctx); // Set properties of the record buffer pa_zero(bufattr); /* optimal value for all is (uint32_t)-1 ~= 2 sec */ bufattr.maxlength = (uint32_t) -1; bufattr.prebuf = (uint32_t) -1; bufattr.minreq = (uint32_t) -1; if (audio_ctx->latency > 0) { bufattr.fragsize = bufattr.tlength = pa_usec_to_bytes((audio_ctx->latency * 1000) * PA_USEC_PER_MSEC, &ss); flags |= PA_STREAM_ADJUST_LATENCY; } else bufattr.fragsize = bufattr.tlength = (uint32_t) -1; flags |= PA_STREAM_INTERPOLATE_TIMING; flags |= PA_STREAM_AUTO_TIMING_UPDATE; char * dev = audio_ctx->list_devices[audio_ctx->device].name; if(verbosity > 0) printf("AUDIO: (pulseaudio) connecting to device %s\n\t (channels %d rate %d)\n", dev, ss.channels, ss.rate); r = pa_stream_connect_record(recordstream, dev, &bufattr, flags); if (r < 0) { fprintf(stderr, "AUDIO: (pulseaudio) skip latency adjustment\n"); /* * Old pulse audio servers don't like the ADJUST_LATENCY flag, * so retry without that */ r = pa_stream_connect_record(recordstream, dev, &bufattr, PA_STREAM_INTERPOLATE_TIMING| PA_STREAM_AUTO_TIMING_UPDATE); } if (r < 0) { fprintf(stderr, "AUDIO: (pulseaudio) pa_stream_connect_record failed\n"); finish(pa_ctx, pa_ml); return ((void *) -1); } get_latency(recordstream); /* * Iterate the main loop while streaming. The second argument is whether * or not the iteration should block until something is ready to be * done. Set it to zero for non-blocking. */ while (audio_ctx->stream_flag == AUDIO_STRM_ON) { pa_mainloop_iterate(pa_ml, 1, NULL); } if(verbosity > 0) printf("AUDIO: (pulseaudio) stream terminated(%i)\n", audio_ctx->stream_flag); pa_stream_disconnect (recordstream); pa_stream_unref (recordstream); finish(pa_ctx, pa_ml); return ((void *) 0); } /* * init pulseaudio api * args: * none * * asserts: * none * * returns: pointer to audio context data * or NULL if error */ audio_context_t *audio_init_pulseaudio() { audio_context_t *audio_ctx = calloc(1, sizeof(audio_context_t)); if(audio_ctx == NULL) { fprintf(stderr,"AUDIO: FATAL memory allocation failure (audio_init_pulseaudio): %s\n", strerror(errno)); exit(-1); } if (pa_get_devicelist(audio_ctx) < 0) { fprintf(stderr, "AUDIO: Pulseaudio failed to get audio device list from PULSE server\n"); free(audio_ctx); return NULL; } audio_ctx->api = AUDIO_PULSE; return audio_ctx; } /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_pulseaudio_device(audio_context_t *audio_ctx, int index) { /*assertions*/ assert(audio_ctx != NULL); if(index >= audio_ctx->num_input_dev) audio_ctx->device = audio_ctx->num_input_dev - 1; else if(index > 0 ) audio_ctx->device = index; audio_ctx->latency = audio_ctx->list_devices[audio_ctx->device].high_latency; audio_ctx->channels = audio_ctx->list_devices[audio_ctx->device].channels; if(audio_ctx->channels > 2) audio_ctx->channels = 2;/*limit it to stereo input*/ audio_ctx->samprate = audio_ctx->list_devices[audio_ctx->device].samprate; } /* * Launch the main loop iteration thread * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start_pulseaudio(audio_context_t *audio_ctx) { /*assertions*/ assert(audio_ctx != NULL); audio_ctx->stream_flag = AUDIO_STRM_ON; /* start audio capture thread */ if(__THREAD_CREATE(&my_read_thread, pulse_read_audio, (void *) audio_ctx)) { fprintf(stderr, "AUDIO: (pulseaudio) read thread creation failed\n"); audio_ctx->stream_flag = AUDIO_STRM_OFF; return (-1); } return 0; } /* * stop and join the main loop iteration thread * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop_pulseaudio(audio_context_t *audio_ctx) { /*assertions*/ assert(audio_ctx != NULL); audio_ctx->stream_flag = AUDIO_STRM_OFF; __THREAD_JOIN( my_read_thread ); if(verbosity > 0) printf("AUDIO: (pulseaudio) read thread joined\n"); return 0; } /* * close and clean audio context for pulseaudio api * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close_pulseaudio(audio_context_t *audio_ctx) { if(audio_ctx == NULL) return; if(audio_ctx->stream_flag == AUDIO_STRM_ON) audio_stop_pulseaudio(audio_ctx); if(audio_ctx->list_devices != NULL); free(audio_ctx->list_devices); audio_ctx->list_devices = NULL; if(audio_ctx->capture_buff) free(audio_ctx->capture_buff); free(audio_ctx); } guvcview-2.0.2+debian/gview_audio/audio_pulseaudio.h000066400000000000000000000061241256377215300226140ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GVIEWAUDIO_PULSEAUDIO_H #define GVIEWAUDIO_PULSEAUDIO_H /* * init pulseaudio api * args: * none * * asserts: * none * * returns: pointer to audio context data * or NULL if error */ audio_context_t *audio_init_pulseaudio(); /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_pulseaudio_device(audio_context_t *audio_ctx, int index); /* * start pulseaudio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start_pulseaudio(audio_context_t *audio_ctx); /* * stop and join the main loop iteration thread * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop_pulseaudio(audio_context_t *audio_ctx); /* * close and clean audio context for pulseaudio api * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close_pulseaudio(audio_context_t *audio_ctx); #endifguvcview-2.0.2+debian/gview_audio/core_time.c000066400000000000000000000067051256377215300212270ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include "core_time.h" #include "gview.h" /* * time in miliseconds * args: * none * * asserts: * none * * returns: time of day in miliseconds */ //uint32_t ms_time () //{ // struct timeval now; // // if(gettimeofday(&now, NULL) != 0) // { // fprintf(stderr, "V4L2_CORE: ms_time (gettimeofday) error: %s\n", strerror(errno)); // return 0; // } // // uint32_t mst = (uint32_t) now.tv_sec * 1000 + (uint32_t) now.tv_usec / 1000; // // return (mst); //} /* * time in microseconds * args: * none * * asserts: * none * * returns: time of day in microseconds */ //uint64_t us_time(void) //{ // struct timeval now; // // if(gettimeofday(&now, NULL) != 0) // { // fprintf(stderr, "V4L2_CORE: us_time (gettimeofday) error: %s\n", strerror(errno)); // return 0; // } // // uint64_t ust = (uint64_t) now.tv_sec * USEC_PER_SEC + (uint64_t) now.tv_usec; // // return (ust); //} /* * time in nanoseconds * args: * none * * asserts: * none * * returns: time in nanoseconds */ //uint64_t ns_time (void) //{ // struct timespec now; // // if(clock_gettime(CLOCK_REALTIME, &now) != 0) // { // fprintf(stderr, "V4L2_CORE: ns_time (clock_gettime) error: %s\n", strerror(errno)); // return 0; // } // // return ((uint64_t) now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); //} /* * monotonic time in nanoseconds * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t ns_time_monotonic() { struct timespec now; if(clock_gettime(CLOCK_MONOTONIC, &now) != 0) { fprintf(stderr, "V4L2_CORE: ns_time_monotonic (clock_gettime) error: %s\n", strerror(errno)); return 0; } return ((uint64_t)now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); } guvcview-2.0.2+debian/gview_audio/core_time.h000066400000000000000000000036151256377215300212310ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef CORE_TIME_H #define CORE_TIME_H #include #include #include #include /* * monotonic time in nanoseconds * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t ns_time_monotonic(); #endifguvcview-2.0.2+debian/gview_audio/gviewaudio.h000066400000000000000000000167351256377215300214350ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Audio library # # # ********************************************************************************/ #ifndef GVIEWAUDIO_H #define GVIEWAUDIO_H #include #include #include /*make sure we support c++*/ __BEGIN_DECLS /*Audio API*/ #define AUDIO_NONE (0) #define AUDIO_PORTAUDIO (1) #define AUDIO_PULSE (2) /*Audio Buffer flags*/ #define AUDIO_BUFF_FREE (0) #define AUDIO_BUFF_USED (1) /*Audio stream flag*/ #define AUDIO_STRM_ON (1) #define AUDIO_STRM_OFF (0) /*Audio Effects*/ #define AUDIO_FX_NONE (0) #define AUDIO_FX_ECHO (1<<0) #define AUDIO_FX_FUZZ (1<<1) #define AUDIO_FX_REVERB (1<<2) #define AUDIO_FX_WAHWAH (1<<3) #define AUDIO_FX_DUCKY (1<<4) /*audio sample format (definition also in gview_encoder)*/ #ifndef GV_SAMPLE_TYPE_INT16 #define GV_SAMPLE_TYPE_INT16 (0) //interleaved #define GV_SAMPLE_TYPE_FLOAT (1) //interleaved #define GV_SAMPLE_TYPE_INT16P (2) //planar #define GV_SAMPLE_TYPE_FLOATP (3) //planar #endif /*internally is always float*/ typedef float sample_t; typedef struct _audio_buff_t { void *data; /*sample buffer - usually sample_t (float)*/ int64_t timestamp; int flag; float level_meter[2]; /*average sample level*/ } audio_buff_t; typedef struct _audio_device_t { int id; /*audo device id*/ int channels; /*max channels*/ int samprate; /*default samplerate*/ double low_latency; /*default low latency*/ double high_latency; /*default high latency*/ char name[512]; /*device name*/ char description[256]; /*device description*/ } audio_device_t; typedef struct _audio_context_t { int api; /*audio api for this context*/ int num_input_dev; /*number of audio input devices in list*/ audio_device_t *list_devices; /*audio input devices list*/ int device; /*current device list index*/ int channels; /*channels*/ int samprate; /*sample rate*/ double latency; /*current sugested latency*/ /*all ts are monotonic based: both real and generated*/ int64_t current_ts; /*current buffer generated timestamp*/ int64_t last_ts; /*last real timestamp (in nanosec)*/ int64_t snd_begintime; /*sound capture start ref time*/ int64_t ts_drift; /*drift between real and generated ts*/ sample_t *capture_buff; /*pointer to capture data*/ int capture_buff_size; float capture_buff_level[2]; /*capture buffer channels level*/ void *stream; /*pointer to audio stream (portaudio)*/ int stream_flag; /*stream flag*/ } audio_context_t; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void audio_set_verbosity(int value); /* * audio initialization * args: * api - audio API to use * (AUDIO_NONE, AUDIO_PORTAUDIO, AUDIO_PULSE, ...) * device - api device index to use (-1 - use api default) * * asserts: * none * * returns: pointer to audio context (NULL if AUDIO_NONE) */ audio_context_t *audio_init(int api, int device); /* * set audio device * args: * audio_ctx - pointer to audio context data * index - device index (from device list) to set * * asserts: * audio_ctx is not null * * returns: none */ void audio_set_device(audio_context_t *audio_ctx, int index); /* * start audio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_start(audio_context_t *audio_ctx); /* * alloc a single audio buffer * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: pointer to newly allocate audio buffer or NULL on error * must be freed with audio_delete_buffer */ audio_buff_t *audio_get_buffer(audio_context_t *audio_ctx); /* * deletes a single audio buffer * args: * audio_buff - pointer to audio_buff_t data * * asserts: * none * * returns: none */ void audio_delete_buffer(audio_buff_t *audio_buff); /* * get the next used buffer from the ring buffer and apply fx * args: * audio_ctx - pointer to audio context * buff - pointer to an allocated audio buffer * type - type of data (SAMPLE_TYPE_[INT16|FLOAT]) * mask - audio fx mask * * asserts: * none * * returns: error code */ int audio_get_next_buffer(audio_context_t *audio_ctx, audio_buff_t *buff, int type, uint32_t mask); /* * apply audio fx * args: * audio_ctx - pointer to audio context * data - pointer to sample buffer to process * mask - or'ed fx combination * * asserts: * none * * returns: none */ void audio_fx_apply(audio_context_t *audio_ctx, sample_t *data, uint32_t mask); /* * clean audio fx data * args: * none * * asserts: * aud_fx is not null * * returns: none */ void audio_fx_close(); /* * stop audio stream capture * args: * audio_ctx - pointer to audio context data * * asserts: * audio_ctx is not null * * returns: error code */ int audio_stop(audio_context_t *audio_ctx); /* * close and clean audio context * args: * audio_ctx - pointer to audio context data * * asserts: * none * * returns: none */ void audio_close(audio_context_t *audio_ctx); __END_DECLS #endif guvcview-2.0.2+debian/gview_encoder/000077500000000000000000000000001256377215300174235ustar00rootroot00000000000000guvcview-2.0.2+debian/gview_encoder/Makefile.am000066400000000000000000000015751256377215300214670ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # Public headers h_sources = gviewencoder.h c_sources = encoder.c \ video_codecs.c \ audio_codecs.c \ libav_encoder.c \ stream_io.c \ file_io.c \ matroska.c \ avi.c \ muxer.c #Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWENCODER_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES= libgviewencoder.la libgviewencoder_la_SOURCES= $(h_sources) $(c_sources) libgviewencoder_la_CFLAGS = $(GVIEWENCODER_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewencoder_la_LIBADD= $(GVIEWENCODER_LIBS) $(GSL_LIBS) $(PTHREAD_LIBS) -lm libgviewencoder_la_LDFLAGS= -version-info $(GVIEWENCODER_LIBRARY_VERSION) -release $(GVIEWENCODER_API_VERSION)guvcview-2.0.2+debian/gview_encoder/Makefile.in000066400000000000000000001062631256377215300215000ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = gview_encoder DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(library_include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(library_includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libgviewencoder_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__objects_1 = am__objects_2 = libgviewencoder_la-encoder.lo \ libgviewencoder_la-video_codecs.lo \ libgviewencoder_la-audio_codecs.lo \ libgviewencoder_la-libav_encoder.lo \ libgviewencoder_la-stream_io.lo libgviewencoder_la-file_io.lo \ libgviewencoder_la-matroska.lo libgviewencoder_la-avi.lo \ libgviewencoder_la-muxer.lo am_libgviewencoder_la_OBJECTS = $(am__objects_1) $(am__objects_2) libgviewencoder_la_OBJECTS = $(am_libgviewencoder_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgviewencoder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libgviewencoder_la_CFLAGS) $(CFLAGS) \ $(libgviewencoder_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgviewencoder_la_SOURCES) DIST_SOURCES = $(libgviewencoder_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(library_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Public headers h_sources = gviewencoder.h c_sources = encoder.c \ video_codecs.c \ audio_codecs.c \ libav_encoder.c \ stream_io.c \ file_io.c \ matroska.c \ avi.c \ muxer.c #Install the headers in a versioned directory - guvcvideo-x.x/libgviewaudio: library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWENCODER_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES = libgviewencoder.la libgviewencoder_la_SOURCES = $(h_sources) $(c_sources) libgviewencoder_la_CFLAGS = $(GVIEWENCODER_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewencoder_la_LIBADD = $(GVIEWENCODER_LIBS) $(GSL_LIBS) $(PTHREAD_LIBS) -lm libgviewencoder_la_LDFLAGS = -version-info $(GVIEWENCODER_LIBRARY_VERSION) -release $(GVIEWENCODER_API_VERSION) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_encoder/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign gview_encoder/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgviewencoder.la: $(libgviewencoder_la_OBJECTS) $(libgviewencoder_la_DEPENDENCIES) $(EXTRA_libgviewencoder_la_DEPENDENCIES) $(AM_V_CCLD)$(libgviewencoder_la_LINK) -rpath $(libdir) $(libgviewencoder_la_OBJECTS) $(libgviewencoder_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-audio_codecs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-avi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-encoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-file_io.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-libav_encoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-matroska.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-muxer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-stream_io.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewencoder_la-video_codecs.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgviewencoder_la-encoder.lo: encoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-encoder.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-encoder.Tpo -c -o libgviewencoder_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-encoder.Tpo $(DEPDIR)/libgviewencoder_la-encoder.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='encoder.c' object='libgviewencoder_la-encoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c libgviewencoder_la-video_codecs.lo: video_codecs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-video_codecs.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-video_codecs.Tpo -c -o libgviewencoder_la-video_codecs.lo `test -f 'video_codecs.c' || echo '$(srcdir)/'`video_codecs.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-video_codecs.Tpo $(DEPDIR)/libgviewencoder_la-video_codecs.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video_codecs.c' object='libgviewencoder_la-video_codecs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-video_codecs.lo `test -f 'video_codecs.c' || echo '$(srcdir)/'`video_codecs.c libgviewencoder_la-audio_codecs.lo: audio_codecs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-audio_codecs.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-audio_codecs.Tpo -c -o libgviewencoder_la-audio_codecs.lo `test -f 'audio_codecs.c' || echo '$(srcdir)/'`audio_codecs.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-audio_codecs.Tpo $(DEPDIR)/libgviewencoder_la-audio_codecs.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio_codecs.c' object='libgviewencoder_la-audio_codecs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-audio_codecs.lo `test -f 'audio_codecs.c' || echo '$(srcdir)/'`audio_codecs.c libgviewencoder_la-libav_encoder.lo: libav_encoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-libav_encoder.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-libav_encoder.Tpo -c -o libgviewencoder_la-libav_encoder.lo `test -f 'libav_encoder.c' || echo '$(srcdir)/'`libav_encoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-libav_encoder.Tpo $(DEPDIR)/libgviewencoder_la-libav_encoder.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libav_encoder.c' object='libgviewencoder_la-libav_encoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-libav_encoder.lo `test -f 'libav_encoder.c' || echo '$(srcdir)/'`libav_encoder.c libgviewencoder_la-stream_io.lo: stream_io.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-stream_io.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-stream_io.Tpo -c -o libgviewencoder_la-stream_io.lo `test -f 'stream_io.c' || echo '$(srcdir)/'`stream_io.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-stream_io.Tpo $(DEPDIR)/libgviewencoder_la-stream_io.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stream_io.c' object='libgviewencoder_la-stream_io.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-stream_io.lo `test -f 'stream_io.c' || echo '$(srcdir)/'`stream_io.c libgviewencoder_la-file_io.lo: file_io.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-file_io.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-file_io.Tpo -c -o libgviewencoder_la-file_io.lo `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-file_io.Tpo $(DEPDIR)/libgviewencoder_la-file_io.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='libgviewencoder_la-file_io.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-file_io.lo `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c libgviewencoder_la-matroska.lo: matroska.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-matroska.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-matroska.Tpo -c -o libgviewencoder_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-matroska.Tpo $(DEPDIR)/libgviewencoder_la-matroska.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska.c' object='libgviewencoder_la-matroska.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c libgviewencoder_la-avi.lo: avi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-avi.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-avi.Tpo -c -o libgviewencoder_la-avi.lo `test -f 'avi.c' || echo '$(srcdir)/'`avi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-avi.Tpo $(DEPDIR)/libgviewencoder_la-avi.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avi.c' object='libgviewencoder_la-avi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-avi.lo `test -f 'avi.c' || echo '$(srcdir)/'`avi.c libgviewencoder_la-muxer.lo: muxer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -MT libgviewencoder_la-muxer.lo -MD -MP -MF $(DEPDIR)/libgviewencoder_la-muxer.Tpo -c -o libgviewencoder_la-muxer.lo `test -f 'muxer.c' || echo '$(srcdir)/'`muxer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewencoder_la-muxer.Tpo $(DEPDIR)/libgviewencoder_la-muxer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='muxer.c' object='libgviewencoder_la-muxer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewencoder_la_CFLAGS) $(CFLAGS) -c -o libgviewencoder_la-muxer.lo `test -f 'muxer.c' || echo '$(srcdir)/'`muxer.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-library_includeHEADERS: $(library_include_HEADERS) @$(NORMAL_INSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ done uninstall-library_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-library_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES \ install-library_includeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/gview_encoder/audio_codecs.c000066400000000000000000000413661256377215300222220ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewencoder.h" #include "gview.h" #include "encoder.h" extern int verbosity; /* AAC object types index: MAIN = 1; LOW = 2; SSR = 3; LTP = 4*/ static int AAC_OBJ_TYPE[5] = { FF_PROFILE_UNKNOWN, FF_PROFILE_AAC_MAIN, FF_PROFILE_AAC_LOW, FF_PROFILE_AAC_SSR, FF_PROFILE_AAC_LTP }; /*-1 = reserved; 0 = freq. is writen explictly (increases header by 24 bits)*/ static int AAC_SAMP_FREQ[16] = { 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, -1, -1, 0}; /*NORMAL AAC HEADER*/ /*2 bytes: object type index(5 bits) + sample frequency index(4bits) + channels(4 bits) + flags(3 bit) */ /*default = MAIN(1)+44100(4)+stereo(2)+flags(0) = 0x0A10*/ static uint8_t AAC_ESDS[2] = {0x0A,0x10}; /* if samprate index == 15 AAC_ESDS[5]: * object type index(5 bits) + sample frequency index(4bits) + samprate(24bits) + channels(4 bits) + flags(3 bit) */ static audio_codec_t listSupCodecs[] = //list of software supported formats { { .valid = 1, .bits = 32, .avi_4cc = WAVE_FORMAT_IEEE_FLOAT, .mkv_codec = "A_PCM/FLOAT/IEEE", .description = N_("PCM - uncompressed (float 32 bit)"), .bit_rate = 0, .codec_id = AV_CODEC_ID_PCM_F32LE, .codec_name = "pcm_f32le", .sample_format = AV_SAMPLE_FMT_FLT, .profile = FF_PROFILE_UNKNOWN, .mkv_codpriv = NULL, .codpriv_size = 0, .flags = 0, .name = "pcm" }, { .valid = 1, .bits = 0, .monotonic_pts= 1, .avi_4cc = WAVE_FORMAT_MPEG12, .mkv_codec = "A_MPEG/L2", .description = N_("MP2 (MPEG audio layer 2)"), .bit_rate = 160000, .codec_id = AV_CODEC_ID_MP2, .codec_name = "mp2", .sample_format = AV_SAMPLE_FMT_S16, .profile = FF_PROFILE_UNKNOWN, .mkv_codpriv = NULL, .codpriv_size = 0, .flags = 0, .name = "mp2" }, { .valid = 1, .bits = 0, .monotonic_pts= 1, .avi_4cc = WAVE_FORMAT_MP3, .mkv_codec = "A_MPEG/L3", .description = N_("MP3 (MPEG audio layer 3)"), .bit_rate = 160000, .codec_id = AV_CODEC_ID_MP3, .codec_name = "libmp3lame", #if LIBAVCODEC_VER_AT_LEAST(54,31) .sample_format = AV_SAMPLE_FMT_FLTP, #else .sample_format = AV_SAMPLE_FMT_S16, #endif .profile = FF_PROFILE_UNKNOWN, .mkv_codpriv = NULL, .codpriv_size = 0, .flags = 0, .name = "mp3" }, { .valid = 1, .bits = 0, .monotonic_pts= 1, .avi_4cc = WAVE_FORMAT_AC3, .mkv_codec = "A_AC3", .description = N_("AC-3 (ATSC A/52A)"), .bit_rate = 160000, .codec_id = AV_CODEC_ID_AC3, .codec_name = "ac3", #if LIBAVCODEC_VER_AT_LEAST(54,31) .sample_format = AV_SAMPLE_FMT_FLTP, #else .sample_format = AV_SAMPLE_FMT_FLT, #endif .profile = FF_PROFILE_UNKNOWN, .mkv_codpriv = NULL, .codpriv_size = 0, .flags = 0, .name = "ac3" }, { .valid = 1, .bits = 16, .monotonic_pts= 1, .avi_4cc = WAVE_FORMAT_AAC, .mkv_codec = "A_AAC", .description = N_("AAC (Advanced Audio Coding)"), .bit_rate = 64000, .codec_id = AV_CODEC_ID_AAC, .codec_name = "aac", #if LIBAVCODEC_VER_AT_LEAST(54,31) .sample_format = AV_SAMPLE_FMT_FLTP, #else .sample_format = AV_SAMPLE_FMT_S16, #endif .profile = FF_PROFILE_AAC_LOW, .mkv_codpriv = AAC_ESDS, .codpriv_size = 2, .flags = 0, .name = "aac" }, { .valid = 1, .bits = 16, .monotonic_pts= 1, .avi_4cc = OGG_FORMAT_VORBIS, .mkv_codec = "A_VORBIS", .description = N_("Vorbis"), .bit_rate = 64000, .codec_id = AV_CODEC_ID_VORBIS, .codec_name = "libvorbis", #if LIBAVCODEC_VER_AT_LEAST(54,31) .sample_format = AV_SAMPLE_FMT_FLTP, #else .sample_format = AV_SAMPLE_FMT_S16, #endif .profile = FF_PROFILE_UNKNOWN, .mkv_codpriv = NULL, .codpriv_size = 0, .flags = 0, .name = "vorb" } }; static int get_aac_obj_ind(int profile) { int i = 0; for (i=0; i<5; i++) if(AAC_OBJ_TYPE[i] == profile) break; return i; } static int get_aac_samp_ind(int samprate) { int i = 0; for (i=0; i<13; i++) if(AAC_SAMP_FREQ[i] == samprate) break; if (i>12) { printf("WARNING: invalid sample rate for AAC encoding\n"); printf("valid(96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350)\n"); i=4; /*default 44100*/ } return i; } /* * get audio codec list size * args: * none * * asserts: * none * * returns: listSupCodecs size (number of elements) */ int encoder_get_audio_codec_list_size() { int size = sizeof(listSupCodecs)/sizeof(audio_codec_t); if(verbosity > 3) printf("ENCODER: audio codec list size:%i\n", size); return size; } /* * get audio codec valid list size * args: * none * * asserts: * none * * returns: listSupCodecs valid number of elements */ //int encoder_get_audio_codec_valid_list_size() //{ // int valid_size = 0; // // int i = 0; // for(i = 0; i < encoder_get_audio_codec_list_size(); ++i) // if(listSupCodecs[i].valid) // valid_size++; // // if(verbosity > 3) // printf("ENCODER: audio codec valid list size:%i\n", valid_size); // // return valid_size; //} /* * return the real (valid only) codec index * args: * codec_ind - codec list index (with non valid removed) * * asserts: * none * * returns: matching listSupCodecs index */ static int get_real_index (int codec_ind) { int i = 0; int ind = -1; for (i = 0; i < encoder_get_audio_codec_list_size(); ++i) { if(listSupCodecs[i].valid) ind++; if(ind == codec_ind) return i; } return (codec_ind); //should never arrive } /* * return the list codec index * args: * real_ind - listSupCodecs index * * asserts: * none * * returns: matching list index (with non valid removed) */ static int get_list_index (int real_index) { if( real_index < 0 || real_index >= encoder_get_audio_codec_list_size() || !listSupCodecs[real_index].valid ) return -1; //error: real index is not valid int i = 0; int ind = -1; for (i = 0; i<= real_index; ++i) { if(listSupCodecs[i].valid) ind++; } return (ind); } /* * returns the real codec array index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_audio_codec_index(int codec_id) { int i = 0; for(i = 0; i < encoder_get_audio_codec_list_size(); ++i ) { if(codec_id == listSupCodecs[i].codec_id) return i; } return -1; } /* * returns the list codec index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_audio_codec_list_index(int codec_id) { return get_list_index(get_audio_codec_index(codec_id)); } /* * get audio list codec entry for codec index * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ audio_codec_t *encoder_get_audio_codec_defaults(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (&(listSupCodecs[real_index])); else { fprintf(stderr, "ENCODER: (audio codec defaults) bad codec index (%i)\n", codec_ind); return NULL; } } /* * checks if the audio codec index corresponds to Vorbis (webm) codec * args: * codec_ind - audio codec list index * * asserts: * none * * returns: 1 true; 0 false */ int encoder_check_webm_audio_codec(int codec_ind) { int real_index = get_real_index (codec_ind); int ret = 0; if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) ret = (listSupCodecs[real_index].codec_id == AV_CODEC_ID_VORBIS) ? 1: 0; return ret; } /* * get the audio codec index for Vorbis (webm) codec * args: * none * * asserts: * none * * returns: index for Vorbis codec or -1 if error */ int encoder_get_webm_audio_codec_index() { return get_audio_codec_list_index(AV_CODEC_ID_VORBIS); } /* * sets the valid flag in the audio codecs list * args: * none * * asserts: * none * * returns: number of valid audio codecs in list */ int encoder_set_valid_audio_codec_list () { int ind = 0; int num_codecs = 0; for ( ind = 0; ind < encoder_get_audio_codec_list_size(); ++ind) { AVCodec *codec = avcodec_find_encoder(listSupCodecs[ind].codec_id); if (!codec) { printf("ENCODER: no audio codec detected for %s\n", listSupCodecs[ind].description); listSupCodecs[ind].valid = 0; } else num_codecs++; } return num_codecs; } /* * get audio list codec description * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ const char *encoder_get_audio_codec_description(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (listSupCodecs[real_index].description); else { fprintf(stderr, "ENCODER: (audio codec description) bad codec index (%i)\n", codec_ind); return NULL; } } /* * get audio mkv codec * args: * codec_ind - codec list index * * asserts: * none * * returns: mkv codec entry or NULL if none */ const char *encoder_get_audio_mkv_codec(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (listSupCodecs[real_index].mkv_codec); else { fprintf(stderr, "ENCODER: (audio mkv codec) bad codec index (%i)\n", codec_ind); return NULL; } } /* * get audio codec bits * args: * codec_ind - codec list index * * asserts: * none * * returns: bits entry from audio codec list */ int encoder_get_audio_bits(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (listSupCodecs[real_index].bits); else { fprintf(stderr, "ENCODER: (get_audio_bits) bad codec index (%i)\n", codec_ind); return 0; } } /* * get audio codec bit rate * args: * codec_ind - codec list index * * asserts: * none * * returns: bit_rate entry from audio codec list */ int encoder_get_audio_bit_rate(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (listSupCodecs[real_index].bit_rate); else { fprintf(stderr, "ENCODER: (get_audio_bit_rate) bad codec index (%i)\n", codec_ind); return 0; } } /* * get the mkv codec private data * args: * codec_ind - codec list index * * asserts: * none * * returns: pointer to mkvCodecPriv data */ void *encoder_get_audio_mkvCodecPriv(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return ((void *) listSupCodecs[real_index].mkv_codpriv); else { fprintf(stderr, "ENCODER: (mkvCodecPriv) bad codec index (%i)\n", codec_ind); return NULL; } } /* * set the audio codec mkv private data * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: mkvCodecPriv size */ int encoder_set_audio_mkvCodecPriv(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); /*assert audio encoder context is not null*/ assert( encoder_ctx->enc_audio_ctx); encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; /*assert video codec data is not null*/ assert(audio_codec_data); int codec_id = audio_codec_data->codec_context->codec_id; int real_index = get_audio_codec_index(codec_id); if (codec_id == AV_CODEC_ID_AAC) { int obj_type = get_aac_obj_ind(listSupCodecs[real_index].profile); int sampind = get_aac_samp_ind(encoder_ctx->audio_samprate); AAC_ESDS[0] = (uint8_t) ((obj_type & 0x1F) << 3 ) + ((sampind & 0x0F) >> 1); AAC_ESDS[1] = (uint8_t) ((sampind & 0x0F) << 7 ) + ((encoder_ctx->audio_channels & 0x0F) << 3); return listSupCodecs[real_index].codpriv_size; /*return size = 2 */ } else if(codec_id == AV_CODEC_ID_VORBIS) { //get the 3 first header packets uint8_t *header_start[3]; int header_len[3]; int first_header_size; first_header_size = 30; //theora = 42 if (avpriv_split_xiph_headers( audio_codec_data->codec_context->extradata, audio_codec_data->codec_context->extradata_size, first_header_size, header_start, header_len) < 0) { fprintf(stderr, "ENCODER: vorbis codec - Extradata corrupt.\n"); return -1; } //printf("Vorbis: header1: %i header2: %i header3:%i \n", header_len[0], header_len[1], header_len[2]); //get the allocation needed for headers size int header_lace_size[2]; header_lace_size[0]=0; header_lace_size[1]=0; int i; for (i = 0; i < header_len[0] / 255; i++) header_lace_size[0]++; header_lace_size[0]++; for (i = 0; i < header_len[1] / 255; i++) header_lace_size[1]++; header_lace_size[1]++; int priv_data_size = 1 + //number of packets -1 header_lace_size[0] + //first packet size header_lace_size[1] + //second packet size header_len[0] + //first packet header header_len[1] + //second packet header header_len[2]; //third packet header /*should check and clean before allocating ??*/ encoder_ctx->enc_audio_ctx->priv_data = calloc(priv_data_size, sizeof(uint8_t)); if(encoder_ctx->enc_audio_ctx->priv_data == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_audio_mkvCodecPriv): %s\n", strerror(errno)); exit(-1); } //write header uint8_t* tmp = encoder_ctx->enc_audio_ctx->priv_data; *tmp++ = 0x02; //number of packets -1 //size of head 1 for (i = 0; i < header_len[0] / 0xff; i++) *tmp++ = 0xff; *tmp++ = header_len[0] % 0xff; //size of head 2 for (i = 0; i < header_len[1] / 0xff; i++) *tmp++ = 0xff; *tmp++ = header_len[1] % 0xff; //add headers for(i=0; i<3; i++) { memcpy(tmp, header_start[i] , header_len[i]); tmp += header_len[i]; } listSupCodecs[real_index].mkv_codpriv = encoder_ctx->enc_audio_ctx->priv_data; listSupCodecs[real_index].codpriv_size = priv_data_size; return listSupCodecs[real_index].codpriv_size; } return 0; } /* * get audio codec name * args: * codec_ind - codec list index * * asserts: * none * * returns: codec name entry */ const char *encoder_get_audio_codec_name(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_audio_codec_list_size()) return (listSupCodecs[real_index].name); else { fprintf(stderr, "ENCODER: (audio codec name) bad codec index (%i)\n", codec_ind);; return NULL; } } /* * get audio codec list index for codec name * args: * codec_name - codec common name * * asserts: * none * * returns: codec index or -1 if error */ int encoder_get_audio_codec_ind_name(const char *codec_name) { int real_index = 0; int index = -1; for(real_index = 0; real_index < encoder_get_audio_codec_list_size(); ++real_index) { if(listSupCodecs[real_index].valid) index++; if(strcasecmp(codec_name, listSupCodecs[real_index].name) == 0) return index; } return -1; } guvcview-2.0.2+debian/gview_encoder/avi.c000066400000000000000000001021161256377215300203470ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # This is a heavily modified version of the matroska interface from x264 # # Copyright (C) 2005 Mike Matsnev # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewencoder.h" #include "encoder.h" #include "stream_io.h" #include "file_io.h" #include "avi.h" #include "gview.h" #ifndef O_BINARY /* win32 wants a binary flag to open(); this sets it to null on platforms that don't have it. */ #define O_BINARY 0 #endif #define INFO_LIST //#define MAX_INFO_STRLEN 64 //static char id_str[MAX_INFO_STRLEN]; #ifndef PACKAGE #define PACKAGE "guvcview" #endif #ifndef VERSION #define VERSION "1.0" #endif #define AVI_INDEX_CLUSTER_SIZE 16384 #define AVIF_HASINDEX 0x00000010 /* Index at end of file */ #define AVIF_MUSTUSEINDEX 0x00000020 #define AVIF_ISINTERLEAVED 0x00000100 #define AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ #define AVIF_WASCAPTUREFILE 0x00010000 #define AVIF_COPYRIGHTED 0x00020000 #define AVI_MAX_RIFF_SIZE 0x40000000LL /*1Gb = 0x40000000LL*/ #define AVI_MASTER_INDEX_SIZE 256 #define AVI_MAX_STREAM_COUNT 10 /* index flags */ #define AVIF_INDEX 0x10 // bIndexType codes // #define AVI_INDEX_OF_INDEXES 0x00 // when each entry in aIndex // array points to an index chunk #define AVI_INDEX_OF_CHUNKS 0x01 // when each entry in aIndex // array points to a chunk in the file #define AVI_INDEX_IS_DATA 0x80 // when each entry is aIndex is // really the data // bIndexSubtype codes for INDEX_OF_CHUNKS #define AVI_INDEX_2FIELD 0x01 // when fields within frames // are also indexed extern int verbosity; int64_t avi_open_tag (avi_context_t *avi_ctx, const char *tag) { io_write_4cc(avi_ctx->writer, tag); io_write_wl32(avi_ctx->writer, 0); return io_get_offset(avi_ctx->writer); } static void avi_close_tag(avi_context_t *avi_ctx, int64_t start_pos) { int64_t current_offset = io_get_offset(avi_ctx->writer); int32_t size = (int32_t) (current_offset - start_pos); io_seek(avi_ctx->writer, start_pos-4); io_write_wl32(avi_ctx->writer, size); io_seek(avi_ctx->writer, current_offset); if(verbosity > 0) printf("ENCODER: (avi) %" PRIu64 " closing tag at %" PRIu64 " with size %i\n", current_offset, start_pos-4, size); } /* * Calculate audio sample size from number of bits and number of channels. * This may have to be adjusted for eg. 12 bits and stereo */ static int avi_audio_sample_size(stream_io_t *stream) { if(stream->type != STREAM_TYPE_AUDIO) return -1; int s; if (stream->a_fmt != WAVE_FORMAT_PCM) { s = 4; } else { s = ((stream->a_bits+7)/8)*stream->a_chans; if(s<4) s=4; /* avoid possible zero divisions */ } return s; } static char* avi_stream2fourcc(char* tag, stream_io_t *stream) { tag[0] = '0' + (stream->id)/10; tag[1] = '0' + (stream->id)%10; switch(stream->type) { case STREAM_TYPE_VIDEO: tag[2] = 'd'; tag[3] = 'c'; break; case STREAM_TYPE_SUB: // note: this is not an official code tag[2] = 's'; tag[3] = 'b'; break; default: //audio tag[2] = 'w'; tag[3] = 'b'; break; } tag[4] = '\0'; return tag; } void avi_put_main_header(avi_context_t *avi_ctx, avi_riff_t *riff) { avi_ctx->fps = get_first_video_stream(avi_ctx->stream_list)->fps; int width = get_first_video_stream(avi_ctx->stream_list)->width; int height = get_first_video_stream(avi_ctx->stream_list)->height; int time_base_num = avi_ctx->time_base_num; int time_base_den = avi_ctx->time_base_den; uint32_t data_rate = 0; if(time_base_den > 0 || time_base_num > 0) //these are not set yet so it's always false data_rate = (uint32_t) (INT64_C(1000000) * time_base_num/time_base_den); else fprintf(stderr, "ENCODER: (avi) bad time base (%i/%i): set it later", time_base_num, time_base_den); /*do not force index yet -only when closing*/ /*this should prevent bad avi files even if it is not closed properly*/ //if(hasIndex) flag |= AVIF_HASINDEX; //if(hasIndex && avi_ctx->must_use_index) flag |= AVIF_MUSTUSEINDEX; avi_ctx->avi_flags = AVIF_WASCAPTUREFILE; int64_t avih = avi_open_tag(avi_ctx, "avih"); // main avi header riff->time_delay_off = io_get_offset(avi_ctx->writer); io_write_wl32(avi_ctx->writer, 1000000 / FRAME_RATE_SCALE); // time per frame (milisec) io_write_wl32(avi_ctx->writer, data_rate); // data rate io_write_wl32(avi_ctx->writer, 0); // Padding multiple size (2048) io_write_wl32(avi_ctx->writer, avi_ctx->avi_flags); // parameter Flags //riff->frames_hdr_all = io_get_offset(avi_ctx->writer); io_write_wl32(avi_ctx->writer, 0); // number of video frames io_write_wl32(avi_ctx->writer, 0); // number of preview frames io_write_wl32(avi_ctx->writer, avi_ctx->stream_list_size); // number of data streams (audio + video)*/ io_write_wl32(avi_ctx->writer, 1024*1024); // suggested playback buffer size (bytes) io_write_wl32(avi_ctx->writer, width); // width io_write_wl32(avi_ctx->writer, height); // height io_write_wl32(avi_ctx->writer, 0); // time scale: unit used to measure time (30) io_write_wl32(avi_ctx->writer, 0); // data rate (frame rate * time scale) io_write_wl32(avi_ctx->writer, 0); // start time (0) io_write_wl32(avi_ctx->writer, 0); // size of avi data chunk (in scale units) avi_close_tag(avi_ctx, avih); //write the chunk size } int64_t avi_put_bmp_header(avi_context_t *avi_ctx, stream_io_t *stream) { int frate = 15 * FRAME_RATE_SCALE; if(stream->fps > 0.001) frate = (int) ((FRAME_RATE_SCALE * (stream->fps)) + 0.5); int64_t strh = avi_open_tag(avi_ctx, "strh");// video stream header io_write_4cc(avi_ctx->writer, "vids"); // stream type io_write_4cc(avi_ctx->writer, stream->compressor); // Handler (VIDEO CODEC) io_write_wl32(avi_ctx->writer, 0); // Flags io_write_wl16(avi_ctx->writer, 0); // stream priority io_write_wl16(avi_ctx->writer, 0); // language tag io_write_wl32(avi_ctx->writer, 0); // initial frames io_write_wl32(avi_ctx->writer, FRAME_RATE_SCALE); // Scale stream->rate_hdr_strm = io_get_offset(avi_ctx->writer); //store this to set proper fps io_write_wl32(avi_ctx->writer, frate); // Rate: Rate/Scale == sample/second (fps) */ io_write_wl32(avi_ctx->writer, 0); // start time stream->frames_hdr_strm = io_get_offset(avi_ctx->writer); io_write_wl32(avi_ctx->writer, 0); // lenght of stream io_write_wl32(avi_ctx->writer, 1024*1024); // suggested playback buffer size io_write_wl32(avi_ctx->writer, -1); // Quality io_write_wl32(avi_ctx->writer, 0); // SampleSize io_write_wl16(avi_ctx->writer, 0); // rFrame (left) io_write_wl16(avi_ctx->writer, 0); // rFrame (top) io_write_wl16(avi_ctx->writer, stream->width); // rFrame (right) io_write_wl16(avi_ctx->writer, stream->height); // rFrame (bottom) avi_close_tag(avi_ctx, strh); //write the chunk size return strh; } int64_t avi_put_wav_header(avi_context_t *avi_ctx, stream_io_t *stream) { int sampsize = avi_audio_sample_size(stream); int64_t strh = avi_open_tag(avi_ctx, "strh");// audio stream header io_write_4cc(avi_ctx->writer, "auds"); io_write_wl32(avi_ctx->writer, 1); // codec tag on strf io_write_wl32(avi_ctx->writer, 0); // Flags io_write_wl16(avi_ctx->writer, 0); // stream priority io_write_wl16(avi_ctx->writer, 0); // language tag io_write_wl32(avi_ctx->writer, 0); // initial frames stream->rate_hdr_strm = io_get_offset(avi_ctx->writer); io_write_wl32(avi_ctx->writer, sampsize/4); // Scale io_write_wl32(avi_ctx->writer, stream->mpgrate/8); // Rate: Rate/Scale == sample/second (fps) */ io_write_wl32(avi_ctx->writer, 0); // start time stream->frames_hdr_strm = io_get_offset(avi_ctx->writer); io_write_wl32(avi_ctx->writer, 0); // lenght of stream io_write_wl32(avi_ctx->writer, 12*1024); // suggested playback buffer size io_write_wl32(avi_ctx->writer, -1); // Quality io_write_wl32(avi_ctx->writer, sampsize/4); // SampleSize io_write_wl16(avi_ctx->writer, 0); // rFrame (left) io_write_wl16(avi_ctx->writer, 0); // rFrame (top) io_write_wl16(avi_ctx->writer, 0); // rFrame (right) io_write_wl16(avi_ctx->writer, 0); // rFrame (bottom) avi_close_tag(avi_ctx, strh); //write the chunk size return strh; } void avi_put_vstream_format_header(avi_context_t *avi_ctx, stream_io_t *stream) { int vxd_size = stream->extra_data_size; int vxd_size_align = (stream->extra_data_size+1) & ~1; int64_t strf = avi_open_tag(avi_ctx, "strf"); // stream format header io_write_wl32(avi_ctx->writer, 40 + vxd_size); // sruct Size io_write_wl32(avi_ctx->writer, stream->width); // Width io_write_wl32(avi_ctx->writer, stream->height); // Height io_write_wl16(avi_ctx->writer, 1); // Planes io_write_wl16(avi_ctx->writer, 24); // Count - bitsperpixel - 1,4,8 or 24 32 if(strncmp(stream->compressor,"DIB",3)==0) io_write_wl32(avi_ctx->writer, 0); // Compression else io_write_4cc(avi_ctx->writer, stream->compressor); io_write_wl32(avi_ctx->writer, stream->width*stream->height*3);// image size (in bytes?) io_write_wl32(avi_ctx->writer, 0); // XPelsPerMeter io_write_wl32(avi_ctx->writer, 0); // YPelsPerMeter io_write_wl32(avi_ctx->writer, 0); // ClrUsed: Number of colors used io_write_wl32(avi_ctx->writer, 0); // ClrImportant: Number of colors important // write extradata (codec private) if (vxd_size > 0 && stream->extra_data) { io_write_buf(avi_ctx->writer, stream->extra_data, vxd_size); if (vxd_size != vxd_size_align) { io_write_w8(avi_ctx->writer, 0); //align } } avi_close_tag(avi_ctx, strf); //write the chunk size } void avi_put_astream_format_header(avi_context_t *avi_ctx, stream_io_t *stream) { int axd_size = stream->extra_data_size; int axd_size_align = (stream->extra_data_size+1) & ~1; int sampsize = avi_audio_sample_size(stream); int64_t strf = avi_open_tag(avi_ctx, "strf");// audio stream format io_write_wl16(avi_ctx->writer, stream->a_fmt); // Format (codec) tag io_write_wl16(avi_ctx->writer, stream->a_chans); // Number of channels io_write_wl32(avi_ctx->writer, stream->a_rate); // SamplesPerSec io_write_wl32(avi_ctx->writer, stream->mpgrate/8);// Average Bytes per sec io_write_wl16(avi_ctx->writer, sampsize/4); // BlockAlign io_write_wl16(avi_ctx->writer, stream->a_bits); //BitsPerSample io_write_wl16(avi_ctx->writer, axd_size); //size of extra data // write extradata (codec private) if (axd_size > 0 && stream->extra_data) { io_write_buf(avi_ctx->writer, stream->extra_data, axd_size); if (axd_size != axd_size_align) { io_write_w8(avi_ctx->writer, 0); //align } } avi_close_tag(avi_ctx, strf); //write the chunk size } void avi_put_vproperties_header(avi_context_t *avi_ctx, stream_io_t *stream) { uint32_t refresh_rate = (uint32_t) lrintf(2.0 * avi_ctx->fps); if(avi_ctx->time_base_den > 0 || avi_ctx->time_base_num > 0) //these are not set yet so it's always false { double time_base = avi_ctx->time_base_num / (double) avi_ctx->time_base_den; refresh_rate = lrintf(1.0/time_base); } int vprp= avi_open_tag(avi_ctx, "vprp"); io_write_wl32(avi_ctx->writer, 0); //video format = unknown io_write_wl32(avi_ctx->writer, 0); //video standard= unknown io_write_wl32(avi_ctx->writer, refresh_rate); // dwVerticalRefreshRate io_write_wl32(avi_ctx->writer, stream->width ); //horizontal pixels io_write_wl32(avi_ctx->writer, stream->height); //vertical lines io_write_wl16(avi_ctx->writer, stream->height); //Active Frame Aspect Ratio (4:3 - 16:9) io_write_wl16(avi_ctx->writer, stream->width); //Active Frame Aspect Ratio io_write_wl32(avi_ctx->writer, stream->width ); //Active Frame Height in Pixels io_write_wl32(avi_ctx->writer, stream->height); //Active Frame Height in Lines io_write_wl32(avi_ctx->writer, 1); //progressive FIXME //Field Framing Information io_write_wl32(avi_ctx->writer, stream->height); io_write_wl32(avi_ctx->writer, stream->width ); io_write_wl32(avi_ctx->writer, stream->height); io_write_wl32(avi_ctx->writer, stream->width ); io_write_wl32(avi_ctx->writer, 0); io_write_wl32(avi_ctx->writer, 0); io_write_wl32(avi_ctx->writer, 0); io_write_wl32(avi_ctx->writer, 0); avi_close_tag(avi_ctx, vprp); } int64_t avi_create_riff_tags(avi_context_t *avi_ctx, avi_riff_t *riff) { int64_t off = 0; riff->riff_start = avi_open_tag(avi_ctx, "RIFF"); if(riff->id == 1) { io_write_4cc(avi_ctx->writer, "AVI "); off = avi_open_tag(avi_ctx, "LIST"); io_write_4cc(avi_ctx->writer, "hdrl"); } else { io_write_4cc(avi_ctx->writer, "AVIX"); off = avi_open_tag(avi_ctx, "LIST"); io_write_4cc(avi_ctx->writer, "movi"); riff->movi_list = off; //update movi list pos for this riff } return off; } //only for riff id = 1 void avi_create_riff_header(avi_context_t *avi_ctx, avi_riff_t *riff) { int64_t list1 = avi_create_riff_tags(avi_ctx, riff); avi_put_main_header(avi_ctx, riff); int i, j = 0; for(j=0; j< avi_ctx->stream_list_size; j++) { stream_io_t *stream = get_stream(avi_ctx->stream_list, j); int64_t list2 = avi_open_tag(avi_ctx, "LIST"); io_write_4cc(avi_ctx->writer,"strl"); //stream list if(stream->type == STREAM_TYPE_VIDEO) { avi_put_bmp_header(avi_ctx, stream); avi_put_vstream_format_header(avi_ctx, stream); } else { avi_put_wav_header(avi_ctx, stream); avi_put_astream_format_header(avi_ctx, stream); } /* Starting to lay out AVI OpenDML master index. * We want to make it JUNK entry for now, since we'd * like to get away without making AVI an OpenDML one * for compatibility reasons. */ char tag[5]; avi_index_t *indexes = (avi_index_t *) stream->indexes; indexes->entry = indexes->ents_allocated = 0; indexes->indx_start = io_get_offset(avi_ctx->writer); int64_t ix = avi_open_tag(avi_ctx, "JUNK"); // ’ix##’ io_write_wl16(avi_ctx->writer, 4); // wLongsPerEntry must be 4 (size of each entry in aIndex array) io_write_w8(avi_ctx->writer, 0); // bIndexSubType must be 0 (frame index) or AVI_INDEX_2FIELD io_write_w8(avi_ctx->writer, AVI_INDEX_OF_INDEXES); // bIndexType (0 == AVI_INDEX_OF_INDEXES) io_write_wl32(avi_ctx->writer, 0); // nEntriesInUse (will fill out later on) io_write_4cc(avi_ctx->writer, avi_stream2fourcc(tag, stream)); // dwChunkId io_write_wl32(avi_ctx->writer, 0); // dwReserved[3] must be 0 io_write_wl32(avi_ctx->writer, 0); io_write_wl32(avi_ctx->writer, 0); for (i=0; i < AVI_MASTER_INDEX_SIZE; i++) { io_write_wl64(avi_ctx->writer, 0); // absolute file offset, offset 0 is unused entry io_write_wl32(avi_ctx->writer, 0); // dwSize - size of index chunk at this offset io_write_wl32(avi_ctx->writer, 0); // dwDuration - time span in stream ticks } avi_close_tag(avi_ctx, ix); //write the chunk size if(stream->type == STREAM_TYPE_VIDEO) avi_put_vproperties_header(avi_ctx, stream); avi_close_tag(avi_ctx, list2); //write the chunk size } avi_ctx->odml_list = avi_open_tag(avi_ctx, "JUNK"); io_write_4cc(avi_ctx->writer, "odml"); io_write_4cc(avi_ctx->writer, "dmlh"); io_write_wl32(avi_ctx->writer, 248); for (i = 0; i < 248; i+= 4) io_write_wl32(avi_ctx->writer, 0); avi_close_tag(avi_ctx, avi_ctx->odml_list); avi_close_tag(avi_ctx, list1); //write the chunk size /* some padding for easier tag editing */ int64_t list3 = avi_open_tag(avi_ctx, "JUNK"); for (i = 0; i < 1016; i += 4) io_write_wl32(avi_ctx->writer, 0); avi_close_tag(avi_ctx, list3); //write the chunk size riff->movi_list = avi_open_tag(avi_ctx, "LIST"); io_write_4cc(avi_ctx->writer, "movi"); } avi_riff_t *avi_get_last_riff(avi_context_t *avi_ctx) { avi_riff_t *last_riff = avi_ctx->riff_list; while(last_riff->next != NULL) last_riff = last_riff->next; return last_riff; } avi_riff_t *avi_get_riff(avi_context_t *avi_ctx, int index) { avi_riff_t *riff = avi_ctx->riff_list; if(!riff) return NULL; int j = 1; while(riff->next != NULL && (j < index)) { riff = riff->next; j++; } if(j != index) return NULL; return riff; } static void clean_indexes(avi_context_t *avi_ctx) { int i=0, j=0; for (i=0; istream_list_size; i++) { stream_io_t *stream = get_stream(avi_ctx->stream_list, i); avi_index_t *indexes = (avi_index_t *) stream->indexes; for (j=0; jents_allocated/AVI_INDEX_CLUSTER_SIZE; j++) free(indexes->cluster[j]); av_freep(&indexes->cluster); indexes->ents_allocated = indexes->entry = 0; } } //call this after adding all the streams avi_riff_t *avi_add_new_riff(avi_context_t *avi_ctx) { avi_riff_t *riff = calloc(1, sizeof(avi_riff_t)); if(riff == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_new_riff): %s\n", strerror(errno)); exit(-1); } riff->next = NULL; riff->id = avi_ctx->riff_list_size + 1; if(riff->id == 1) { riff->previous = NULL; avi_ctx->riff_list = riff; avi_create_riff_header(avi_ctx, riff); } else { avi_riff_t *last_riff = avi_get_last_riff(avi_ctx); riff->previous = last_riff; last_riff->next = riff; avi_create_riff_tags(avi_ctx, riff); } avi_ctx->riff_list_size++; clean_indexes(avi_ctx); if(verbosity > 0) printf("ENCODER: (avi) adding new RIFF (%i)\n", riff->id); return riff; } //second function to get called (add video stream to avi_Context) stream_io_t *avi_add_video_stream( avi_context_t *avi_ctx, int32_t width, int32_t height, int32_t fps, int32_t fps_num, int32_t codec_id) { stream_io_t *stream = add_new_stream(&avi_ctx->stream_list, &avi_ctx->stream_list_size); stream->type = STREAM_TYPE_VIDEO; stream->fps = (double) fps/fps_num;; stream->width = width; stream->height = height; stream->codec_id = codec_id; stream->indexes = (void *) calloc(1, sizeof(avi_index_t)); if(stream->indexes == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_video_stream): %s\n", strerror(errno)); exit(-1); } int codec_ind = get_video_codec_list_index(codec_id); strncpy(stream->compressor, encoder_get_video_codec_4cc(codec_ind), 8); return stream; } //third function to get called (add audio stream to avi_Context) stream_io_t *avi_add_audio_stream( avi_context_t *avi_ctx, int32_t channels, int32_t rate, int32_t bits, int32_t mpgrate, int32_t codec_id, int32_t format) { stream_io_t *stream = add_new_stream(&avi_ctx->stream_list, &avi_ctx->stream_list_size); stream->type = STREAM_TYPE_AUDIO; stream->a_chans = channels; stream->a_rate = rate; stream->a_bits = bits; stream->mpgrate = mpgrate; stream->a_vbr = 0; stream->codec_id = codec_id; stream->a_fmt = format; stream->indexes = (void *) calloc(1, sizeof(avi_index_t)); if(stream->indexes == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_add_audio_stream): %s\n", strerror(errno)); exit(-1); } return stream; } /* first function to get called avi_create_context: Open an AVI File and write a bunch of zero bytes as space for the header. Creates a mutex. returns a pointer to avi_Context on success, a NULL pointer on error */ avi_context_t *avi_create_context(const char *filename) { avi_context_t *avi_ctx = calloc(1, sizeof(avi_context_t)); if(avi_ctx == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_create_context): %s\n", strerror(errno)); exit(-1); } avi_ctx->writer = io_create_writer(filename, 0); if (avi_ctx->writer == NULL) { fprintf(stderr, "ENCODER: (avi) Could not open file (%s) for writing: %s", filename, strerror(errno)); free(avi_ctx); return NULL; } avi_ctx->flags = 0; /*recordind*/ avi_ctx->riff_list = NULL; avi_ctx->riff_list_size = 0; avi_ctx->stream_list = NULL; avi_ctx->stream_list_size = 0; return avi_ctx; } void avi_destroy_context(avi_context_t *avi_ctx) { //clean up io_destroy_writer(avi_ctx->writer); avi_riff_t *riff = avi_get_last_riff(avi_ctx); while(riff != NULL) //from end to start { avi_riff_t *prev_riff = riff->previous; free(riff); riff = prev_riff; avi_ctx->riff_list_size--; } destroy_stream_list(avi_ctx->stream_list, &avi_ctx->stream_list_size); //free avi_Context free(avi_ctx); } avi_I_entry_t *avi_get_ientry(avi_index_t *idx, int ent_id) { int cl = ent_id / AVI_INDEX_CLUSTER_SIZE; int id = ent_id % AVI_INDEX_CLUSTER_SIZE; return &idx->cluster[cl][id]; } static int avi_write_counters(avi_context_t *avi_ctx, avi_riff_t *riff) { int n, nb_frames = 0; io_flush_buffer(avi_ctx->writer); //int time_base_num = avi_ctx->time_base_num; //int time_base_den = avi_ctx->time_base_den; int64_t file_size = io_get_offset(avi_ctx->writer);//avi_tell(avi_ctx); if(verbosity > 0) printf("ENCODER: (avi) file size = %" PRIu64 "\n", file_size); for(n = 0; n < avi_ctx->stream_list_size; n++) { stream_io_t *stream = get_stream(avi_ctx->stream_list, n); if(stream->rate_hdr_strm <= 0) { fprintf(stderr, "ENCODER: (avi) stream rate header pos not valid\n"); } else { io_seek(avi_ctx->writer, stream->rate_hdr_strm); if(stream->type == STREAM_TYPE_VIDEO && avi_ctx->fps > 0.001) { uint32_t rate =(uint32_t) FRAME_RATE_SCALE * lrintf(avi_ctx->fps); if(verbosity > 0) fprintf(stderr,"ENCODER: (avi) storing rate(%i)\n",rate); io_write_wl32(avi_ctx->writer, rate); } } if(stream->frames_hdr_strm <= 0) { fprintf(stderr, "ENCODER: (avi) stream frames header pos not valid\n"); } else { io_seek(avi_ctx->writer, stream->frames_hdr_strm); if(stream->type == STREAM_TYPE_VIDEO) { io_write_wl32(avi_ctx->writer, stream->packet_count); nb_frames = MAX(nb_frames, stream->packet_count); } else { int sampsize = avi_audio_sample_size(stream); io_write_wl32(avi_ctx->writer, 4*stream->audio_strm_length/sampsize); } } } avi_riff_t *riff_1 = avi_get_riff(avi_ctx, 1); if(riff_1->id == 1) /*should always be true*/ { if(riff_1->time_delay_off <= 0) { fprintf(stderr, "ENCODER: (avi) riff main header pos not valid\n"); } else { uint32_t us_per_frame = 1000; //us if(avi_ctx->fps > 0.001) us_per_frame=(uint32_t) lrintf(1000000.0 / avi_ctx->fps); avi_ctx->avi_flags |= AVIF_HASINDEX; io_seek(avi_ctx->writer, riff_1->time_delay_off); io_write_wl32(avi_ctx->writer, us_per_frame); // time_per_frame io_write_wl32(avi_ctx->writer, 0); // data rate io_write_wl32(avi_ctx->writer, 0); // Padding multiple size (2048) io_write_wl32(avi_ctx->writer, avi_ctx->avi_flags); // parameter Flags //io_seek(avi_ctx->writer, riff_1->frames_hdr_all); io_write_wl32(avi_ctx->writer, nb_frames); } } //return to position (EOF) io_seek(avi_ctx->writer, file_size); return 0; } static int avi_write_ix(avi_context_t *avi_ctx) { char tag[5]; char ix_tag[] = "ix00"; int i, j; avi_riff_t *riff = avi_get_last_riff(avi_ctx); if (riff->id > AVI_MASTER_INDEX_SIZE) return -1; for (i=0;istream_list_size;i++) { stream_io_t *stream = get_stream(avi_ctx->stream_list, i); int64_t ix, pos; avi_stream2fourcc(tag, stream); ix_tag[3] = '0' + i; /*only 10 streams supported*/ /* Writing AVI OpenDML leaf index chunk */ ix = io_get_offset(avi_ctx->writer); io_write_4cc(avi_ctx->writer, ix_tag); /* ix?? */ avi_index_t *indexes = (avi_index_t *) stream->indexes; io_write_wl32(avi_ctx->writer, indexes->entry * 8 + 24); /* chunk size */ io_write_wl16(avi_ctx->writer, 2); /* wLongsPerEntry */ io_write_w8(avi_ctx->writer, 0); /* bIndexSubType (0 == frame index) */ io_write_w8(avi_ctx->writer, AVI_INDEX_OF_CHUNKS); /* bIndexType (1 == AVI_INDEX_OF_CHUNKS) */ io_write_wl32(avi_ctx->writer, indexes->entry); /* nEntriesInUse */ io_write_4cc(avi_ctx->writer, tag); /* dwChunkId */ io_write_wl64(avi_ctx->writer, riff->movi_list);/* qwBaseOffset */ io_write_wl32(avi_ctx->writer, 0); /* dwReserved_3 (must be 0) */ for (j=0; j< indexes->entry; j++) { avi_I_entry_t *ie = avi_get_ientry(indexes, j); io_write_wl32(avi_ctx->writer, ie->pos + 8); io_write_wl32(avi_ctx->writer, ((uint32_t)ie->len & ~0x80000000) | (ie->flags & 0x10 ? 0 : 0x80000000)); } io_flush_buffer(avi_ctx->writer); pos = io_get_offset(avi_ctx->writer); //current position if(verbosity > 0) printf("ENCODER: (avi) wrote ix %s with %i entries\n", tag, indexes->entry); /* Updating one entry in the AVI OpenDML master index */ io_seek(avi_ctx->writer, indexes->indx_start); io_write_4cc(avi_ctx->writer, "indx"); /* enabling this entry */ io_skip(avi_ctx->writer, 8); io_write_wl32(avi_ctx->writer, riff->id); /* nEntriesInUse */ io_skip(avi_ctx->writer, 16*(riff->id)); io_write_wl64(avi_ctx->writer, ix); /* qwOffset */ io_write_wl32(avi_ctx->writer, pos - ix); /* dwSize */ io_write_wl32(avi_ctx->writer, indexes->entry); /* dwDuration */ //return to position io_seek(avi_ctx->writer, pos); } return 0; } static int avi_write_idx1(avi_context_t *avi_ctx, avi_riff_t *riff) { int64_t idx_chunk; int i; char tag[5]; stream_io_t *stream; avi_I_entry_t *ie = 0, *tie; int empty, stream_id = -1; idx_chunk = avi_open_tag(avi_ctx, "idx1"); for (i=0;istream_list_size;i++) { stream = get_stream(avi_ctx->stream_list, i); stream->entry=0; } do { empty = 1; for (i=0;istream_list_size;i++) { stream = get_stream(avi_ctx->stream_list, i); avi_index_t *indexes = (avi_index_t *) stream->indexes; if (indexes->entry <= stream->entry) continue; tie = avi_get_ientry(indexes, stream->entry); if (empty || tie->pos < ie->pos) { ie = tie; stream_id = i; } empty = 0; } if (!empty) { stream = get_stream(avi_ctx->stream_list, stream_id); avi_stream2fourcc(tag, stream); io_write_4cc(avi_ctx->writer, tag); io_write_wl32(avi_ctx->writer, ie->flags); io_write_wl32(avi_ctx->writer, ie->pos); io_write_wl32(avi_ctx->writer, ie->len); stream->entry++; } } while (!empty); avi_close_tag(avi_ctx, idx_chunk); if(verbosity > 0) printf("ENCODER: (avi) wrote idx1\n"); avi_write_counters(avi_ctx, riff); return 0; } int avi_write_packet( avi_context_t *avi_ctx, int stream_index, uint8_t *data, uint32_t size, int64_t dts, int block_align, int32_t flags) { char tag[5]; unsigned int i_flags=0; stream_io_t *stream= get_stream(avi_ctx->stream_list, stream_index); avi_riff_t *riff = avi_get_last_riff(avi_ctx); //align //while(block_align==0 && dts != AV_NOPTS_VALUE && dts > stream->packet_count) // avi_write_packet(avi_ctx, stream_index, NULL, 0, AV_NOPTS_VALUE, 0, 0); stream->packet_count++; // Make sure to put an OpenDML chunk when the file size exceeds the limits if (io_get_offset(avi_ctx->writer) - riff->riff_start > AVI_MAX_RIFF_SIZE) { avi_write_ix(avi_ctx); avi_close_tag(avi_ctx, riff->movi_list); if (riff->id == 1) avi_write_idx1(avi_ctx, riff); avi_close_tag(avi_ctx, riff->riff_start); avi_add_new_riff(avi_ctx); riff = avi_get_last_riff(avi_ctx); //update riff } avi_stream2fourcc(tag, stream); if(flags & AV_PKT_FLAG_KEY) //key frame i_flags = 0x10; if (stream->type == STREAM_TYPE_AUDIO) stream->audio_strm_length += size; avi_index_t *idx = (avi_index_t *) stream->indexes; int cl = idx->entry / AVI_INDEX_CLUSTER_SIZE; int id = idx->entry % AVI_INDEX_CLUSTER_SIZE; if (idx->ents_allocated <= idx->entry) { idx->cluster = realloc(idx->cluster, (cl+1)*sizeof(void*)); if (idx->cluster == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_write_packet): %s\n", strerror(errno)); exit(-1); } idx->cluster[cl] = calloc(AVI_INDEX_CLUSTER_SIZE, sizeof(avi_I_entry_t)); if (idx->cluster[cl] == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (avi_write_packet): %s\n", strerror(errno)); exit(-1); } idx->ents_allocated += AVI_INDEX_CLUSTER_SIZE; } idx->cluster[cl][id].flags = i_flags; idx->cluster[cl][id].pos = io_get_offset(avi_ctx->writer) - riff->movi_list; idx->cluster[cl][id].len = size; idx->entry++; io_write_4cc(avi_ctx->writer, tag); io_write_wl32(avi_ctx->writer, size); io_write_buf(avi_ctx->writer, data, size); if (size & 1) io_write_w8(avi_ctx->writer, 0); io_flush_buffer(avi_ctx->writer); return 0; } int avi_close(avi_context_t *avi_ctx) { int res = 0; int64_t file_size; avi_riff_t *riff = avi_get_last_riff(avi_ctx); if (riff->id == 1) { avi_close_tag(avi_ctx, riff->movi_list); if(verbosity > 0) printf("ENCODER: (avi) %" PRIu64 " close movi tag\n",io_get_offset(avi_ctx->writer)); res = avi_write_idx1(avi_ctx, riff); avi_close_tag(avi_ctx, riff->riff_start); } else { avi_write_ix(avi_ctx); avi_close_tag(avi_ctx, riff->movi_list); avi_close_tag(avi_ctx, riff->riff_start); file_size = io_get_offset(avi_ctx->writer); io_seek(avi_ctx->writer, avi_ctx->odml_list - 8); io_write_4cc(avi_ctx->writer, "LIST"); /* Making this AVI OpenDML one */ io_skip(avi_ctx->writer, 16); int n = 0; int nb_frames = 0; for (n=nb_frames=0;nstream_list_size;n++) { stream_io_t *stream = get_stream(avi_ctx->stream_list, n); if (stream->type == STREAM_TYPE_VIDEO) { if (nb_frames < stream->packet_count) nb_frames = stream->packet_count; } else { if (stream->codec_id == AV_CODEC_ID_MP2 || stream->codec_id == AV_CODEC_ID_MP3) nb_frames += stream->packet_count; } } io_write_wl32(avi_ctx->writer, nb_frames); io_seek(avi_ctx->writer, file_size); avi_write_counters(avi_ctx, riff); } clean_indexes(avi_ctx); return res; } guvcview-2.0.2+debian/gview_encoder/avi.h000066400000000000000000000075401256377215300203610ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # This is a heavily modified version of the matroska interface from x264 # # Copyright (C) 2005 Mike Matsnev # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef AVI_H #define AVI_H #include #include #include "stream_io.h" #include "file_io.h" #define AVI_MAX_TRACKS 8 #define FRAME_RATE_SCALE 1000 //1000000 typedef struct _video_index_entry_t { off_t key; off_t pos; off_t len; } video_index_entry_t; typedef struct _audio_index_entry_t { off_t pos; off_t len; off_t tot; } audio_index_entry_t; typedef struct avi_I_entry_t { unsigned int flags, pos, len; } avi_I_entry_t; typedef struct avi_index_t { int64_t indx_start; int entry; int ents_allocated; avi_I_entry_t **cluster; } avi_index_t; typedef struct _avi_riff_t { int64_t riff_start, movi_list; //int64_t frames_hdr_all; int64_t time_delay_off; int id; struct _avi_riff_t *previous, *next; } avi_riff_t; typedef struct avi_RIFF avi_RIFF; typedef struct avi_context_t { io_writer_t *writer; int flags; /* 0 - AVI is recordind; 1 - AVI is not recording*/ uint32_t avi_flags; int32_t time_base_num; /* video time base numerator */ int32_t time_base_den; /* video time base denominator */ avi_riff_t *riff_list; // avi_riff list (NULL terminated) int riff_list_size; stream_io_t *stream_list; int stream_list_size; double fps; int64_t odml_list; /*,time_delay_off*/ ; //some file offsets } avi_context_t; avi_context_t *avi_create_context(const char *filename); stream_io_t *avi_add_video_stream( avi_context_t *avi_ctx, int32_t width, int32_t height, int32_t fps, int32_t fps_num, int32_t codec_id); stream_io_t *avi_add_audio_stream( avi_context_t *avi_ctx, int32_t channels, int32_t rate, int32_t bits, int32_t mpgrate, int32_t codec_id, int32_t format); int avi_write_packet( avi_context_t *avi_ctx, int stream_index, uint8_t *data, uint32_t size, int64_t dts, int block_align, int32_t flags); avi_riff_t *avi_add_new_riff(avi_context_t *avi_ctx); int avi_close(avi_context_t *avi_ctx); void avi_destroy_context(avi_context_t *avi_ctx); #endifguvcview-2.0.2+debian/gview_encoder/encoder.c000066400000000000000000001513751256377215300212220ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Encoder library # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gviewencoder.h" #include "encoder.h" #include "stream_io.h" #include "gview.h" #if LIBAVUTIL_VER_AT_LEAST(52,2) #include #endif int verbosity = 0; /*video buffer data mutex*/ static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; #define __PMUTEX &mutex static int valid_video_codecs = 0; static int valid_audio_codecs = 0; static int64_t last_video_pts = 0; static int64_t last_audio_pts = 0; static int64_t reference_pts = 0; static int video_frame_max_size = 0; static int video_ring_buffer_size = 0; static video_buffer_t *video_ring_buffer = NULL; static int video_read_index = 0; static int video_write_index = 0; static int video_scheduler = 0; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void encoder_set_verbosity(int value) { verbosity = value; } /* * convert yuyv to yuv420p * args: * encoder_ctx - pointer to encoder context * inp - input data (yuyv) * * asserts: * encoder_ctx is not null * encoder_ctx->enc_video_ctx is not null * encoder_ctx->enc_video_ctx->tmpbuf is not null * * returns: none */ static void yuv422to420p(encoder_context_t *encoder_ctx, uint8_t *inp) { /*assertions*/ assert(encoder_ctx != NULL); assert(encoder_ctx->enc_video_ctx != NULL); assert( encoder_ctx->enc_video_ctx->tmpbuf != NULL); encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; assert(video_codec_data); int i,j; int linesize= encoder_ctx->video_width * 2; int size = encoder_ctx->video_width * encoder_ctx->video_height; uint8_t *y; uint8_t *y1; uint8_t *u; uint8_t *v; y = encoder_ctx->enc_video_ctx->tmpbuf; y1 = encoder_ctx->enc_video_ctx->tmpbuf + encoder_ctx->video_width; u = encoder_ctx->enc_video_ctx->tmpbuf + size; v = u + size/4; for(j = 0; j < (encoder_ctx->video_height - 1); j += 2) { for(i = 0; i < (linesize - 3); i += 4) { *y++ = inp[i+j*linesize]; *y++ = inp[i+2+j*linesize]; *y1++ = inp[i+(j+1)*linesize]; *y1++ = inp[i+2+(j+1)*linesize]; *u++ = (inp[i+1+j*linesize] + inp[i+1+(j+1)*linesize])>>1; // div by 2 *v++ = (inp[i+3+j*linesize] + inp[i+3+(j+1)*linesize])>>1; } y += encoder_ctx->video_width; y1 += encoder_ctx->video_width;//2 lines } prepare_video_frame(video_codec_data, encoder_ctx->enc_video_ctx->tmpbuf, encoder_ctx->video_width, encoder_ctx->video_height); } /* * check that a given sample format is supported by the encoder * args: * codec - pointer to AVCodec * sample_fmt - audio sample format * * assertions: * none * * returns: 1 - sample format is supported; 0 - is not supported */ static int encoder_check_audio_sample_fmt(AVCodec *codec, enum AVSampleFormat sample_fmt) { const enum AVSampleFormat *p = codec->sample_fmts; while (*p != AV_SAMPLE_FMT_NONE) { if (*p == sample_fmt) return 1; p++; } return 0; } /* * allocate video ring buffer * args: * video_width - video frame width (in pixels) * video_height - video frame height (in pixels) * fps_den - frames per sec (denominator) * fps_num - frames per sec (numerator) * codec_ind - video codec index (0 -raw) * * asserts: * none * * returns: none */ static void encoder_alloc_video_ring_buffer( int video_width, int video_height, int fps_den, int fps_num, int codec_ind) { video_ring_buffer_size = (fps_den * 3) / (fps_num * 2); /* 1.5 sec */ if(video_ring_buffer_size < 20) video_ring_buffer_size = 20; /*at least 20 frames buffer*/ video_ring_buffer = calloc(video_ring_buffer_size, sizeof(video_buffer_t)); if(video_ring_buffer == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_alloc_video_ring_buffer): %s\n", strerror(errno)); exit(-1); } if(codec_ind > 0) { #ifdef USE_PLANAR_YUV video_frame_max_size = (video_width * video_height * 3) / 2; #else /*Max: (yuyv) 2 bytes per pixel*/ video_frame_max_size = video_width * video_height * 2; #endif } else video_frame_max_size = video_width * video_height * 3; //RGB formats int i = 0; for(i = 0; i < video_ring_buffer_size; ++i) { video_ring_buffer[i].frame = calloc(video_frame_max_size, sizeof(uint8_t)); if(video_ring_buffer[i].frame == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_alloc_video_ring_buffer): %s\n", strerror(errno)); exit(-1); } video_ring_buffer[i].flag = VIDEO_BUFF_FREE; } } /* * clean video ring buffer * args: * none * * asserts: * none * * returns: none */ static void encoder_clean_video_ring_buffer() { if(!video_ring_buffer) return; int i = 0; for(i = 0; i < video_ring_buffer_size; ++i) { /*Max: (yuyv) 2 bytes per pixel*/ free(video_ring_buffer[i].frame); } free(video_ring_buffer); video_ring_buffer = NULL; } /* * video encoder initialization for raw input * (don't set a codec but set the proper codec 4cc) * args: * enc_video_ctx - pointer to video context * video_defaults - pointer to video codec default data * video_width - video frame width * video_height - video frame height * * asserts: * encoder_ctx is not null * encoder_ctx->enc_video_ctx is not null * * returns: none */ static void encoder_set_raw_video_input( encoder_context_t *encoder_ctx, video_codec_t *video_defaults ) { //assertions assert(encoder_ctx != NULL); assert(encoder_ctx->enc_video_ctx != NULL); encoder_ctx->video_codec_ind = 0; switch(encoder_ctx->input_format) { case V4L2_PIX_FMT_MJPEG: strncpy(video_defaults->compressor, "MJPG", 5); video_defaults->mkv_4cc = v4l2_fourcc('M','J','P','G'); strncpy(video_defaults->mkv_codec, "V_MS/VFW/FOURCC", 25); encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height / 2; encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); if(encoder_ctx->enc_video_ctx->outbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } break; case V4L2_PIX_FMT_H264: strncpy(video_defaults->compressor, "H264", 5); video_defaults->mkv_4cc = v4l2_fourcc('H','2','6','4'); strncpy(video_defaults->mkv_codec, "V_MPEG4/ISO/AVC", 25); encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height / 2; encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); if(encoder_ctx->enc_video_ctx->outbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } break; default: { char fourcc[5]; fourcc[0]= (char) encoder_ctx->input_format & 0xFF; fourcc[1]= (char) encoder_ctx->input_format & 0xFF00 >> 8; fourcc[2]= (char) encoder_ctx->input_format & 0xFF0000 >> 16; fourcc[3]= (char) encoder_ctx->input_format & 0xFF000000 >> 24; fourcc[4]='\0'; strncpy(video_defaults->compressor, fourcc, 5); video_defaults->mkv_4cc = encoder_ctx->input_format; //v4l2_fourcc('Y','U','Y','2') strncpy(video_defaults->mkv_codec, "V_MS/VFW/FOURCC", 25); encoder_ctx->enc_video_ctx->outbuf_size = encoder_ctx->video_width * encoder_ctx->video_height * 3; //max of 3 bytes per pixel encoder_ctx->enc_video_ctx->outbuf = calloc(encoder_ctx->enc_video_ctx->outbuf_size, sizeof(uint8_t)); if(encoder_ctx->enc_video_ctx->outbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } break; } } } /* * video encoder initialization * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: pointer to encoder video context (NULL on none) */ static encoder_video_context_t *encoder_video_init(encoder_context_t *encoder_ctx) { //assertions assert(encoder_ctx != NULL); if(encoder_ctx->video_codec_ind < 0) { if(verbosity > 0) printf("ENCODER: no video codec set - using raw (direct input)\n"); encoder_ctx->video_codec_ind = 0; } video_codec_t *video_defaults = encoder_get_video_codec_defaults(encoder_ctx->video_codec_ind); if(!video_defaults) { fprintf(stderr, "ENCODER: defaults for video codec index %i not found: using raw (direct input)\n", encoder_ctx->video_codec_ind); encoder_ctx->video_codec_ind = 0; video_defaults = encoder_get_video_codec_defaults(encoder_ctx->video_codec_ind); if(!video_defaults) { /*should never happen*/ fprintf(stderr, "ENCODER: defaults for raw video not found\n"); return NULL; } } encoder_video_context_t *enc_video_ctx = calloc(1, sizeof(encoder_video_context_t)); if(enc_video_ctx == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } /* make sure enc_video_ctx is set in encoder_ctx */ encoder_ctx->enc_video_ctx = enc_video_ctx; if(encoder_ctx->video_codec_ind == 0) { encoder_set_raw_video_input(encoder_ctx, video_defaults); return (enc_video_ctx); } /* * alloc the video codec data */ encoder_codec_data_t *video_codec_data = calloc(1, sizeof(encoder_codec_data_t)); if(video_codec_data == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } /* * find the video encoder * try specific codec (by name) */ video_codec_data->codec = avcodec_find_encoder_by_name(video_defaults->codec_name); /*if it fails try any codec with matching AV_CODEC_ID*/ if(!video_codec_data->codec) video_codec_data->codec = avcodec_find_encoder(video_defaults->codec_id); if(!video_codec_data->codec) { /*we will use raw data so free the codec data*/ free(video_codec_data); fprintf(stderr, "ENCODER: libav video codec (%i) not found - using raw input\n",video_defaults->codec_id); video_defaults = encoder_get_video_codec_defaults(0); encoder_set_raw_video_input(encoder_ctx, video_defaults); return (enc_video_ctx); } #if LIBAVCODEC_VER_AT_LEAST(53,6) video_codec_data->codec_context = avcodec_alloc_context3(video_codec_data->codec); avcodec_get_context_defaults3 ( video_codec_data->codec_context, video_codec_data->codec); #else video_codec_data->codec_context = avcodec_alloc_context(); #endif if(video_codec_data->codec_context == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } /*set codec defaults*/ video_codec_data->codec_context->bit_rate = video_defaults->bit_rate; video_codec_data->codec_context->width = encoder_ctx->video_width; video_codec_data->codec_context->height = encoder_ctx->video_height; video_codec_data->codec_context->flags |= video_defaults->flags; if (video_defaults->num_threads > 0) video_codec_data->codec_context->thread_count = video_defaults->num_threads; /* * mb_decision: * 0 (FF_MB_DECISION_SIMPLE) Use mbcmp (default). * 1 (FF_MB_DECISION_BITS) Select the MB mode which needs the fewest bits (=vhq). * 2 (FF_MB_DECISION_RD) Select the MB mode which has the best rate distortion. */ video_codec_data->codec_context->mb_decision = video_defaults->mb_decision; /*use trellis quantization*/ video_codec_data->codec_context->trellis = video_defaults->trellis; /*motion estimation method (epzs)*/ video_codec_data->codec_context->me_method = video_defaults->me_method; video_codec_data->codec_context->dia_size = video_defaults->dia; video_codec_data->codec_context->pre_dia_size = video_defaults->pre_dia; video_codec_data->codec_context->pre_me = video_defaults->pre_me; video_codec_data->codec_context->me_pre_cmp = video_defaults->me_pre_cmp; video_codec_data->codec_context->me_cmp = video_defaults->me_cmp; video_codec_data->codec_context->me_sub_cmp = video_defaults->me_sub_cmp; video_codec_data->codec_context->me_subpel_quality = video_defaults->subq; //NEW video_codec_data->codec_context->refs = video_defaults->framerefs; //NEW video_codec_data->codec_context->last_predictor_count = video_defaults->last_pred; video_codec_data->codec_context->mpeg_quant = video_defaults->mpeg_quant; //h.263 video_codec_data->codec_context->qmin = video_defaults->qmin; // best detail allowed - worst compression video_codec_data->codec_context->qmax = video_defaults->qmax; // worst detail allowed - best compression video_codec_data->codec_context->max_qdiff = video_defaults->max_qdiff; video_codec_data->codec_context->max_b_frames = video_defaults->max_b_frames; video_codec_data->codec_context->qcompress = video_defaults->qcompress; video_codec_data->codec_context->qblur = video_defaults->qblur; video_codec_data->codec_context->strict_std_compliance = FF_COMPLIANCE_NORMAL; video_codec_data->codec_context->codec_id = video_defaults->codec_id; #if !LIBAVCODEC_VER_AT_LEAST(53,0) #define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO #endif video_codec_data->codec_context->codec_type = AVMEDIA_TYPE_VIDEO; video_codec_data->codec_context->pix_fmt = video_defaults->pix_fmt; //only yuv420p available for mpeg if(video_defaults->fps) video_codec_data->codec_context->time_base = (AVRational){1, video_defaults->fps}; //use codec properties fps else if (encoder_ctx->fps_den >= 5) video_codec_data->codec_context->time_base = (AVRational){encoder_ctx->fps_num, encoder_ctx->fps_den}; //default fps (for gspca this is 1/1) else video_codec_data->codec_context->time_base = (AVRational){1,15}; //fallback to 15 fps (e.g gspca) if(video_defaults->gop_size > 0) video_codec_data->codec_context->gop_size = video_defaults->gop_size; else video_codec_data->codec_context->gop_size = video_codec_data->codec_context->time_base.den; if(video_defaults->codec_id == AV_CODEC_ID_H264) { video_codec_data->codec_context->me_range = 16; //the first compressed frame will be empty (1 frame out of sync) //but avoids x264 warning on lookaheadless mb-tree #if LIBAVCODEC_VER_AT_LEAST(53,6) av_dict_set(&video_codec_data->private_options, "rc_lookahead", "1", 0); #else video_codec_data->codec_context->rc_lookahead=1; #endif } /* open codec*/ #if LIBAVCODEC_VER_AT_LEAST(53,6) if (avcodec_open2( video_codec_data->codec_context, video_codec_data->codec, &video_codec_data->private_options) < 0) #else if (avcodec_open( video_codec_data->codec_context, video_codec_data->codec) < 0) #endif { fprintf(stderr, "ENCODER: could not open video codec (%s) - using raw input\n", video_defaults->codec_name); free(video_codec_data->codec_context); video_codec_data->codec_context = NULL; video_codec_data->codec = 0; /*we will use raw data so free the codec data*/ free(video_codec_data); video_defaults = encoder_get_video_codec_defaults(0); encoder_set_raw_video_input(encoder_ctx, video_defaults); return (enc_video_ctx); } #if LIBAVCODEC_VER_AT_LEAST(55,28) video_codec_data->frame = av_frame_alloc(); #else video_codec_data->frame = avcodec_alloc_frame(); #endif if(video_codec_data->frame == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } video_codec_data->frame->pts = 0; /*set the codec data in codec context*/ enc_video_ctx->codec_data = (void *) video_codec_data; #ifdef USE_PLANAR_YUV enc_video_ctx->tmpbuf = NULL; //no need to temp buffer input already in yu12 (yuv420p) #else //alloc tmpbuff (yuv420p) enc_video_ctx->tmpbuf = calloc((encoder_ctx->video_width * encoder_ctx->video_height * 3)/2, sizeof(uint8_t)); if(enc_video_ctx->tmpbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } #endif //alloc outbuf enc_video_ctx->outbuf_size = 240000;//1792 enc_video_ctx->outbuf = calloc(enc_video_ctx->outbuf_size, sizeof(uint8_t)); if(enc_video_ctx->outbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_video_init): %s\n", strerror(errno)); exit(-1); } enc_video_ctx->delayed_frames = 0; enc_video_ctx->index_of_df = -1; enc_video_ctx->flushed_buffers = 0; enc_video_ctx->flush_delayed_frames = 0; enc_video_ctx->flush_done = 0; return (enc_video_ctx); } /* * audio encoder initialization * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: pointer to encoder audio context (NULL on none) */ static encoder_audio_context_t *encoder_audio_init(encoder_context_t *encoder_ctx) { //assertions assert(encoder_ctx != NULL); if(encoder_ctx->audio_codec_ind < 0) { if(verbosity > 0) printf("ENCODER: no audio codec set\n"); return NULL; } if(encoder_ctx->audio_channels <= 0) { if(verbosity > 0) printf("ENCODER: no audio channels set\n"); return NULL; } audio_codec_t *audio_defaults = encoder_get_audio_codec_defaults(encoder_ctx->audio_codec_ind); if(!audio_defaults) { fprintf(stderr, "ENCODER: defaults for audio codec index %i not found\n", encoder_ctx->audio_codec_ind); return NULL; } /*alloc the encoder audio context*/ encoder_audio_context_t *enc_audio_ctx = calloc(1, sizeof(encoder_audio_context_t)); if(enc_audio_ctx == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); exit(-1); } encoder_ctx->enc_audio_ctx = enc_audio_ctx; enc_audio_ctx->index_of_df = -1; enc_audio_ctx->flushed_buffers = 0; enc_audio_ctx->flush_delayed_frames = 0; enc_audio_ctx->flush_done = 0; /* * alloc the audio codec data */ encoder_codec_data_t *audio_codec_data = calloc(1, sizeof(encoder_codec_data_t)); /* * find the audio encoder * try specific codec (by name) */ audio_codec_data->codec = avcodec_find_encoder_by_name(audio_defaults->codec_name); /*if it fails try any codec with matching AV_CODEC_ID*/ if(!audio_codec_data->codec) audio_codec_data->codec = avcodec_find_encoder(audio_defaults->codec_id); if(!audio_codec_data->codec) { fprintf(stderr, "ENCODER: audio codec (%i) not found\n",audio_defaults->codec_id); free(audio_codec_data); free(enc_audio_ctx); encoder_ctx->enc_audio_ctx = NULL; return NULL; } #if LIBAVCODEC_VER_AT_LEAST(53,6) audio_codec_data->codec_context = avcodec_alloc_context3(audio_codec_data->codec); avcodec_get_context_defaults3 (audio_codec_data->codec_context, audio_codec_data->codec); #else audio_codec_data->codec_context = avcodec_alloc_context(); #endif if(audio_codec_data->codec_context == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); exit(-1); } /*defaults*/ enc_audio_ctx->avi_4cc = audio_defaults->avi_4cc; audio_codec_data->codec_context->bit_rate = audio_defaults->bit_rate; audio_codec_data->codec_context->profile = audio_defaults->profile; /*for AAC*/ audio_codec_data->codec_context->flags |= audio_defaults->flags; audio_codec_data->codec_context->sample_rate = encoder_ctx->audio_samprate; audio_codec_data->codec_context->channels = encoder_ctx->audio_channels; #if LIBAVCODEC_VER_AT_LEAST(53,34) if(encoder_ctx->audio_channels < 2) audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_MONO; else audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_STEREO; #endif audio_codec_data->codec_context->cutoff = 0; /*automatic*/ audio_codec_data->codec_context->codec_id = audio_defaults->codec_id; #if !LIBAVCODEC_VER_AT_LEAST(53,0) #define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO #endif audio_codec_data->codec_context->codec_type = AVMEDIA_TYPE_AUDIO; /*check if codec supports sample format*/ if (!encoder_check_audio_sample_fmt(audio_codec_data->codec, audio_defaults->sample_format)) { switch(audio_defaults->sample_format) { case AV_SAMPLE_FMT_S16: if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) { fprintf(stderr, "ENCODER: changing sample format (S16 -> S16P)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLT)) { fprintf(stderr, "ENCODER: changing sample format (S16 -> FLT)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_FLT; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLTP)) { fprintf(stderr, "ENCODER: changing sample format (S16 -> FLTP)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_FLTP; } else { fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); free(audio_codec_data->codec_context); free(audio_codec_data); free(enc_audio_ctx); encoder_ctx->enc_audio_ctx = NULL; return NULL; } break; case AV_SAMPLE_FMT_FLT: if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16)) { fprintf(stderr, "ENCODER: changing sample format (FLT -> S16)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_S16; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) { fprintf(stderr, "ENCODER: changing sample format (FLT -> S16P)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLTP)) { fprintf(stderr, "ENCODER: changing sample format (FLT -> FLTP)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_FLTP; } else { fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); free(audio_codec_data->codec_context); free(audio_codec_data); free(enc_audio_ctx); encoder_ctx->enc_audio_ctx = NULL; return NULL; } break; case AV_SAMPLE_FMT_FLTP: if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16)) { fprintf(stderr, "ENCODER: changing sample format (FLTP -> S16)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_S16; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_S16P)) { fprintf(stderr, "ENCODER: changing sample format (FLTP -> S16P)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_S16P; } else if (encoder_check_audio_sample_fmt(audio_codec_data->codec, AV_SAMPLE_FMT_FLT)) { fprintf(stderr, "ENCODER: changing sample format (FLTP -> FLT)\n"); audio_defaults->sample_format = AV_SAMPLE_FMT_FLT; } else { fprintf(stderr, "ENCODER: could not open audio codec: no supported sample format\n"); free(audio_codec_data->codec_context); free(audio_codec_data); free(enc_audio_ctx); encoder_ctx->enc_audio_ctx = NULL; return NULL; } break; } } audio_codec_data->codec_context->sample_fmt = audio_defaults->sample_format; /* open codec*/ #if LIBAVCODEC_VER_AT_LEAST(53,6) if (avcodec_open2( audio_codec_data->codec_context, audio_codec_data->codec, NULL) < 0) #else if (avcodec_open( audio_codec_data->codec_context, audio_codec_data->codec) < 0) #endif { fprintf(stderr, "ENCODER: could not open audio codec\n"); free(audio_codec_data->codec_context); free(audio_codec_data); free(enc_audio_ctx); encoder_ctx->enc_audio_ctx = NULL; return NULL; } /* the codec gives us the frame size, in samples */ int frame_size = audio_codec_data->codec_context->frame_size; if(frame_size <= 0) { frame_size = 1152; /*default value*/ audio_codec_data->codec_context->frame_size = frame_size; } if(verbosity > 0) printf("ENCODER: Audio frame size is %d frames for selected codec\n", frame_size); enc_audio_ctx->monotonic_pts = audio_defaults->monotonic_pts; /*alloc outbuf*/ enc_audio_ctx->outbuf_size = 240000; enc_audio_ctx->outbuf = calloc(enc_audio_ctx->outbuf_size, sizeof(uint8_t)); if(enc_audio_ctx->outbuf == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); exit(-1); } #if LIBAVCODEC_VER_AT_LEAST(53,34) #if LIBAVCODEC_VER_AT_LEAST(55,28) audio_codec_data->frame = av_frame_alloc(); #else audio_codec_data->frame = avcodec_alloc_frame(); #endif if(audio_codec_data->frame == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_audio_init): %s\n", strerror(errno)); exit(-1); } #if LIBAVCODEC_VER_AT_LEAST(55,28) av_frame_unref(audio_codec_data->frame); #else avcodec_get_frame_defaults(audio_codec_data->frame); #endif audio_codec_data->frame->nb_samples = frame_size; audio_codec_data->frame->format = audio_defaults->sample_format; #if LIBAVCODEC_VER_AT_LEAST(54,0) audio_codec_data->frame->channel_layout = audio_codec_data->codec_context->channel_layout; #endif #endif /*set codec data in encoder context*/ enc_audio_ctx->codec_data = (void *) audio_codec_data; return (enc_audio_ctx); } /* * get the audio encoder frame size * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: audio encoder frame size * or < 0 on error */ int encoder_get_audio_frame_size(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx); if(encoder_ctx->enc_audio_ctx == NULL) return -1; encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; if(audio_codec_data == NULL) return -1; return audio_codec_data->codec_context->frame_size; } /* * get the audio encoder input sample format * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: audio encoder sample format */ int encoder_get_audio_sample_fmt(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx); /*default*/ int sample_type = GV_SAMPLE_TYPE_INT16; if(encoder_ctx->enc_audio_ctx == NULL) return sample_type; encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; if(audio_codec_data == NULL) return sample_type; switch(audio_codec_data->codec_context->sample_fmt) { case AV_SAMPLE_FMT_FLTP: sample_type = GV_SAMPLE_TYPE_FLOATP; break; case AV_SAMPLE_FMT_FLT: sample_type = GV_SAMPLE_TYPE_FLOAT; break; case AV_SAMPLE_FMT_S16P: sample_type = GV_SAMPLE_TYPE_INT16P; break; default: sample_type = GV_SAMPLE_TYPE_INT16; break; } return sample_type; } /* * get audio sample format max value * args: * none * * returns the maximum audio sample format value */ int encoder_get_max_audio_sample_fmt() { return AV_SAMPLE_FMT_NB-1; } /* * get an estimated write loop sleep time to avoid a ring buffer overrun * args: * mode: scheduler mode: * 0 - linear funtion; 1 - exponencial funtion * thresh: ring buffer threshold in wich scheduler becomes active: * [0.2 (20%) - 0.9 (90%)] * max_time - maximum scheduler time (in ms) * * asserts: * none * * returns: estimate sleep time (nanosec) */ uint32_t encoder_buff_scheduler(int mode, double thresh, int max_time) { int diff_ind = 0; uint32_t sched_time = 0; /*in milisec*/ __LOCK_MUTEX( __PMUTEX ); /* try to balance buffer overrun in read/write operations */ if(video_write_index >= video_read_index) diff_ind = video_write_index - video_read_index; else diff_ind = (video_ring_buffer_size - video_read_index) + video_write_index; __UNLOCK_MUTEX( __PMUTEX ); /*clip ring buffer threshold*/ if(thresh < 0.2) thresh = 0.2; /*20% full*/ if(thresh > 0.9) thresh = 0.9; /*90% full*/ int th = (int) lround((double) video_ring_buffer_size * thresh); if (diff_ind >= th) { switch(mode) { case ENCODER_SCHED_LIN: /*linear function*/ sched_time = (uint32_t) lround((double) (diff_ind - th) * (max_time/(video_ring_buffer_size - th))); break; case ENCODER_SCHED_EXP: /*exponencial*/ { double exp = (double) log10(max_time)/log10(video_ring_buffer_size - th); if(exp > 0) sched_time = (uint32_t) lround( pow(diff_ind - th, exp)); else /*use linear function*/ sched_time = (uint32_t) lround((double) (diff_ind - th) * (max_time/(video_ring_buffer_size - th))); break; } } } if(verbosity > 2) printf("ENCODER: scheduler %i ms (index delta %i)\n", sched_time, diff_ind); /*clip*/ if(sched_time < 0) sched_time = 0; /*clip to positive values just in case*/ if(sched_time > 1000) sched_time = 1000; /*1 sec max*/ return (sched_time * 1E6); /*return in nanosec*/ } /* * encoder initaliztion * args: * none * * asserts: * none * * returns: none */ void encoder_init() { #if !LIBAVCODEC_VER_AT_LEAST(53,34) avcodec_init(); #endif /* register all the codecs (you can also register only the codec * you wish to have smaller code) */ avcodec_register_all(); valid_video_codecs = encoder_set_valid_video_codec_list (); valid_audio_codecs = encoder_set_valid_audio_codec_list (); } /* * get valid video codec count * args: * none * * asserts: * none * * returns: number of valid video codecs */ int encoder_get_valid_video_codecs() { return valid_video_codecs; } /* * get valid audio codec count * args: * none * * asserts: * none * * returns: number of valid audio codecs */ int encoder_get_valid_audio_codecs() { return valid_audio_codecs; } /* * initialize and get the encoder context * args: * input_format - input v4l2 format (yuyv for encoding) * video_codec_ind - video codec list index * audio_codec_ind - audio codec list index * muxer_id - file muxer: * ENCODER_MUX_MKV; ENCODER_MUX_WEBM; ENCODER_MUX_AVI * video_width - video frame width * video_height - video frame height * fps_num - fps numerator * fps_den - fps denominator * audio_channels- audio channels * audio_samprate- audio sample rate * * asserts: * none * * returns: pointer to encoder context (NULL on error) */ encoder_context_t *encoder_get_context( int input_format, int video_codec_ind, int audio_codec_ind, int muxer_id, int video_width, int video_height, int fps_num, int fps_den, int audio_channels, int audio_samprate) { encoder_context_t *encoder_ctx = calloc(1, sizeof(encoder_context_t)); if(encoder_ctx == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_get_context): %s\n", strerror(errno)); exit(-1); } encoder_ctx->input_format = input_format; encoder_ctx->video_codec_ind = video_codec_ind; encoder_ctx->audio_codec_ind = audio_codec_ind; encoder_ctx->muxer_id = muxer_id; encoder_ctx->video_width = video_width; encoder_ctx->video_height = video_height; encoder_ctx->fps_num = fps_num; encoder_ctx->fps_den = fps_den; encoder_ctx->audio_channels = audio_channels; encoder_ctx->audio_samprate = audio_samprate; /******************* video **********************/ encoder_video_init(encoder_ctx); /******************* audio **********************/ encoder_audio_init(encoder_ctx); if(!encoder_ctx->enc_audio_ctx) encoder_ctx->audio_channels = 0; /*no audio*/ /****************** ring buffer *****************/ encoder_alloc_video_ring_buffer( video_width, video_height, fps_den, fps_num, video_codec_ind); return encoder_ctx; } /* * store unprocessed input video frame in video ring buffer * args: * frame - pointer to unprocessed frame data * size - frame size (in bytes) * timestamp - frame timestamp (in nanosec) * isKeyframe - flag if it's a key(IDR) frame * * asserts: * none * * returns: error code */ int encoder_add_video_frame(uint8_t *frame, int size, int64_t timestamp, int isKeyframe) { if(!video_ring_buffer) return -1; if (reference_pts == 0) { reference_pts = timestamp; /*first frame ts*/ if(verbosity > 0) printf("ENCODER: ref ts = %" PRId64 "\n", timestamp); } int64_t pts = timestamp - reference_pts; __LOCK_MUTEX( __PMUTEX ); int flag = video_ring_buffer[video_write_index].flag; __UNLOCK_MUTEX( __PMUTEX ); if(flag != VIDEO_BUFF_FREE) { fprintf(stderr, "ENCODER: video ring buffer full - dropping frame\n"); return -1; } /*clip*/ if(size > video_frame_max_size) { fprintf(stderr, "ENCODER: frame (%i bytes) larger than buffer (%i bytes): clipping\n", size, video_frame_max_size); size = video_frame_max_size; } memcpy(video_ring_buffer[video_write_index].frame, frame, size); video_ring_buffer[video_write_index].frame_size = size; video_ring_buffer[video_write_index].timestamp = pts; video_ring_buffer[video_write_index].keyframe = isKeyframe; __LOCK_MUTEX( __PMUTEX ); video_ring_buffer[video_write_index].flag = VIDEO_BUFF_USED; NEXT_IND(video_write_index, video_ring_buffer_size); __UNLOCK_MUTEX( __PMUTEX ); return 0; } /* * process next video frame on the ring buffer (encode and mux to file) * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_process_next_video_buffer(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); __LOCK_MUTEX( __PMUTEX ); int flag = video_ring_buffer[video_read_index].flag; __UNLOCK_MUTEX ( __PMUTEX ); if(flag == VIDEO_BUFF_FREE) return 1; /*all done*/ /*timestamp is zero indexed*/ encoder_ctx->enc_video_ctx->pts = video_ring_buffer[video_read_index].timestamp; /*raw (direct input)*/ if(encoder_ctx->video_codec_ind == 0) { /*outbuf_coded_size must already be set*/ encoder_ctx->enc_video_ctx->outbuf_coded_size = video_ring_buffer[video_read_index].frame_size; if(video_ring_buffer[video_read_index].keyframe) encoder_ctx->enc_video_ctx->flags |= AV_PKT_FLAG_KEY; } encoder_encode_video(encoder_ctx, video_ring_buffer[video_read_index].frame); /*mux the frame*/ __LOCK_MUTEX( __PMUTEX ); video_ring_buffer[video_read_index].flag = VIDEO_BUFF_FREE; NEXT_IND(video_read_index, video_ring_buffer_size); __UNLOCK_MUTEX ( __PMUTEX ); encoder_write_video_data(encoder_ctx); return 0; } /* * process all used video frames from buffer * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_flush_video_buffer(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); __LOCK_MUTEX( __PMUTEX ); int flag = video_ring_buffer[video_read_index].flag; __UNLOCK_MUTEX ( __PMUTEX ); int buffer_count = video_ring_buffer_size; while(flag != VIDEO_BUFF_FREE && buffer_count > 0) { buffer_count--; /*timestamp is zero indexed*/ encoder_ctx->enc_video_ctx->pts = video_ring_buffer[video_read_index].timestamp; /*raw (direct input)*/ if(encoder_ctx->video_codec_ind == 0) { /*outbuf_coded_size must already be set*/ encoder_ctx->enc_video_ctx->outbuf_coded_size = video_ring_buffer[video_read_index].frame_size; if(video_ring_buffer[video_read_index].keyframe) encoder_ctx->enc_video_ctx->flags |= AV_PKT_FLAG_KEY; } encoder_encode_video(encoder_ctx, video_ring_buffer[video_read_index].frame); /*mux the frame*/ __LOCK_MUTEX( __PMUTEX ); video_ring_buffer[video_read_index].flag = VIDEO_BUFF_FREE; NEXT_IND(video_read_index, video_ring_buffer_size); __UNLOCK_MUTEX ( __PMUTEX ); encoder_write_video_data(encoder_ctx); /*get next buffer flag*/ __LOCK_MUTEX( __PMUTEX ); flag = video_ring_buffer[video_read_index].flag; __UNLOCK_MUTEX ( __PMUTEX ); } /*flush libav*/ int flushed_frame_counter = 0; encoder_ctx->enc_video_ctx->flush_delayed_frames = 1; while(!encoder_ctx->enc_video_ctx->flush_done && flushed_frame_counter <= encoder_ctx->enc_video_ctx->delayed_frames) { encoder_encode_video(encoder_ctx, NULL); encoder_write_video_data(encoder_ctx); flushed_frame_counter++; } if(!buffer_count) { fprintf(stderr, "ENCODER: (flush video buffer) max processed buffers reached\n"); return -1; } return 0; } /* * process all delayed audio frames from libavcodec * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_flush_audio_buffer(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); /*flush libav*/ int flushed_frame_counter = 0; encoder_ctx->enc_audio_ctx->flush_delayed_frames = 1; while(!encoder_ctx->enc_audio_ctx->flush_done && flushed_frame_counter <= encoder_ctx->enc_audio_ctx->delayed_frames) { encoder_encode_audio(encoder_ctx, NULL); encoder_write_audio_data(encoder_ctx); flushed_frame_counter++; } } /* * process audio frame (encode and mux to file) * args: * encoder_ctx - pointer to encoder context * data - audio buffer * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_process_audio_buffer(encoder_context_t *encoder_ctx, void *data) { /*assertions*/ assert(encoder_ctx != NULL); if(encoder_ctx->enc_audio_ctx == NULL || encoder_ctx->audio_channels <= 0) return -1; encoder_encode_audio(encoder_ctx, data); int ret = encoder_write_audio_data(encoder_ctx); return ret; } /* * encode video frame * args: * encoder_ctx - pointer to encoder context * input_frame - pointer to frame data * * asserts: * encoder_ctx is not null * * returns: encoded buffer size */ int encoder_encode_video(encoder_context_t *encoder_ctx, void *input_frame) { /*assertions*/ assert(encoder_ctx != NULL); encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; int outsize = 0; if(!enc_video_ctx) { if(verbosity > 1) printf("ENCODER: video encoder not set\n"); encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; return outsize; } encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; /*raw - direct input no software encoding*/ if(encoder_ctx->video_codec_ind == 0) { if(input_frame == NULL) { encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; return outsize; } /*outbuf_coded_size must already be set*/ outsize = enc_video_ctx->outbuf_coded_size; memcpy(enc_video_ctx->outbuf, input_frame, outsize); enc_video_ctx->flags = 0; /*enc_video_ctx->flags must be set*/ enc_video_ctx->dts = AV_NOPTS_VALUE; if(last_video_pts == 0) last_video_pts = enc_video_ctx->pts; enc_video_ctx->duration = enc_video_ctx->pts - last_video_pts; last_video_pts = enc_video_ctx->pts; return (outsize); } if(input_frame != NULL) { #ifdef USE_PLANAR_YUV prepare_video_frame(video_codec_data, input_frame, encoder_ctx->video_width, encoder_ctx->video_height); #else /*convert default yuyv to y420p (libav input format)*/ switch(video_codec_data->codec_context->pix_fmt) { case PIX_FMT_YUVJ420P: yuv422to420p(encoder_ctx, input_frame); break; default: yuv422to420p(encoder_ctx, input_frame); break; } #endif } if(!enc_video_ctx->monotonic_pts) //generate a real pts based on the frame timestamp video_codec_data->frame->pts += ((enc_video_ctx->pts - last_video_pts)/1000) * 90; else /*generate a true monotonic pts based on the codec fps*/ video_codec_data->frame->pts += (video_codec_data->codec_context->time_base.num * 1000 / video_codec_data->codec_context->time_base.den) * 90; if(enc_video_ctx->flush_delayed_frames) { //pkt.size = 0; if(!enc_video_ctx->flushed_buffers) { avcodec_flush_buffers(video_codec_data->codec_context); enc_video_ctx->flushed_buffers = 1; } } #if LIBAVCODEC_VER_AT_LEAST(54,01) AVPacket pkt; int got_packet = 0; av_init_packet(&pkt); pkt.data = enc_video_ctx->outbuf; pkt.size = enc_video_ctx->outbuf_size; int ret = 0; //if(enc_video_ctx->outbuf_size < FF_MIN_BUFFER_SIZE) //{ // av_log(avctx, AV_LOG_ERROR, "buffer smaller than minimum size\n"); // return -1; //} if(!enc_video_ctx->flush_delayed_frames) ret = avcodec_encode_video2( video_codec_data->codec_context, &pkt, video_codec_data->frame, &got_packet); else ret = avcodec_encode_video2( video_codec_data->codec_context, &pkt, NULL, /*NULL flushes the encoder buffers*/ &got_packet); if (!ret && got_packet && video_codec_data->codec_context->coded_frame) { /* Do we really need to set this ???*/ video_codec_data->codec_context->coded_frame->pts = pkt.pts; video_codec_data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); } enc_video_ctx->dts = pkt.dts; enc_video_ctx->flags = pkt.flags; enc_video_ctx->duration = pkt.duration; /* free any side data since we cannot return it */ if (pkt.side_data_elems > 0) { int i; for (i = 0; i < pkt.side_data_elems; i++) av_free(pkt.side_data[i].data); av_freep(&pkt.side_data); pkt.side_data_elems = 0; } outsize = pkt.size; #else if(!enc_video_ctx->flush_delayed_frames) outsize = avcodec_encode_video( video_codec_data->codec_context, enc_video_ctx->outbuf, enc_video_ctx->outbuf_size, video_codec_data->frame); else outsize = avcodec_encode_video( video_codec_data->codec_context, enc_video_ctx->outbuf, enc_video_ctx->outbuf_size, NULL); /*NULL flushes the encoder buffers*/ enc_video_ctx->flags = 0; if (video_codec_data->codec_context->coded_frame->key_frame) enc_video_ctx->flags |= AV_PKT_FLAG_KEY; enc_video_ctx->dts = AV_NOPTS_VALUE; if(last_video_pts == 0) last_video_pts = enc_video_ctx->pts; enc_video_ctx->duration = enc_video_ctx->pts - last_video_pts; #endif last_video_pts = enc_video_ctx->pts; if(enc_video_ctx->flush_delayed_frames && outsize == 0) enc_video_ctx->flush_done = 1; else if(outsize == 0 && enc_video_ctx->index_of_df < 0) { enc_video_ctx->delayed_pts[enc_video_ctx->delayed_frames] = enc_video_ctx->pts; enc_video_ctx->delayed_frames++; if(enc_video_ctx->delayed_frames > MAX_DELAYED_FRAMES) { enc_video_ctx->delayed_frames = MAX_DELAYED_FRAMES; printf("ENCODER: Maximum of %i delayed video frames reached...\n", MAX_DELAYED_FRAMES); } } else { if(enc_video_ctx->delayed_frames > 0) { if(enc_video_ctx->index_of_df < 0) { enc_video_ctx->index_of_df = 0; printf("ENCODER: video codec is using %i delayed video frames\n", enc_video_ctx->delayed_frames); } int64_t my_pts = enc_video_ctx->pts; enc_video_ctx->pts = enc_video_ctx->delayed_pts[enc_video_ctx->index_of_df]; enc_video_ctx->delayed_pts[enc_video_ctx->index_of_df] = my_pts; enc_video_ctx->index_of_df++; if(enc_video_ctx->index_of_df >= enc_video_ctx->delayed_frames) enc_video_ctx->index_of_df = 0; } } encoder_ctx->enc_video_ctx->outbuf_coded_size = outsize; return (outsize); } /* * encode audio * args: * encoder_ctx - pointer to encoder context * audio_data - pointer to audio pcm data * * asserts: * encoder_ctx is not null * * returns: encoded buffer size */ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) { /*assertions*/ assert(encoder_ctx != NULL); encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; int outsize = 0; if(!enc_audio_ctx) { if(verbosity > 1) printf("ENCODER: audio encoder not set\n"); return outsize; } encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; if(enc_audio_ctx->flush_delayed_frames) { //pkt.size = 0; if(!enc_audio_ctx->flushed_buffers) { if(audio_codec_data) avcodec_flush_buffers(audio_codec_data->codec_context); enc_audio_ctx->flushed_buffers = 1; } } /* encode the audio */ #if LIBAVCODEC_VER_AT_LEAST(53,34) AVPacket pkt; int got_packet; av_init_packet(&pkt); pkt.data = enc_audio_ctx->outbuf; pkt.size = enc_audio_ctx->outbuf_size; int ret = 0; if(!enc_audio_ctx->flush_delayed_frames) { /*number of samples per channel*/ audio_codec_data->frame->nb_samples = audio_codec_data->codec_context->frame_size; #if LIBAVUTIL_VER_AT_LEAST(51,23) int align = 0; #else int align = 1; /*otherwise it causes a SIGFPE*/ #endif int buffer_size = av_samples_get_buffer_size( NULL, audio_codec_data->codec_context->channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt, align); if(buffer_size <= 0) { fprintf(stderr, "ENCODER: (encoder_encode_audio) av_samples_get_buffer_size error (%d): chan(%d) nb_samp(%d) samp_fmt(%d)\n", buffer_size, audio_codec_data->codec_context->channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt); return outsize; } /*set the data pointers in frame*/ ret = avcodec_fill_audio_frame( audio_codec_data->frame, audio_codec_data->codec_context->channels, audio_codec_data->codec_context->sample_fmt, (const uint8_t *) audio_data, buffer_size, align); if(ret < 0) { fprintf(stderr, "ENCODER: (encoder_encode_audio) avcodec_fill_audio_frame error (%d): chan(%d) nb_samp(%d) samp_fmt(%d) buff(%d bytes)\n", ret, audio_codec_data->codec_context->channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt, buffer_size); return outsize; } if(!enc_audio_ctx->monotonic_pts) /*generate a real pts based on the frame timestamp*/ audio_codec_data->frame->pts += ((enc_audio_ctx->pts - last_audio_pts)/1000) * 90; else if (audio_codec_data->codec_context->time_base.den > 0) /*generate a true monotonic pts based on the codec fps*/ audio_codec_data->frame->pts += (audio_codec_data->codec_context->time_base.num*1000/audio_codec_data->codec_context->time_base.den) * 90; else { fprintf(stderr, "ENCODER: (encoder_encode_audio) couldn't generate a monotonic ts: time_base.den(%d)\n", audio_codec_data->codec_context->time_base.den); } ret = avcodec_encode_audio2( audio_codec_data->codec_context, &pkt, audio_codec_data->frame, &got_packet); } else { ret = avcodec_encode_audio2( audio_codec_data->codec_context, &pkt, NULL, /*NULL flushes the encoder buffers*/ &got_packet); } if (!ret && got_packet && audio_codec_data->codec_context->coded_frame) { audio_codec_data->codec_context->coded_frame->pts = pkt.pts; audio_codec_data->codec_context->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); } enc_audio_ctx->dts = pkt.dts; enc_audio_ctx->flags = pkt.flags; enc_audio_ctx->duration = pkt.duration; /* free any side data since we cannot return it */ //ff_packet_free_side_data(&pkt); if (audio_codec_data->frame && audio_codec_data->frame->extended_data != audio_codec_data->frame->data) av_freep(audio_codec_data->frame->extended_data); outsize = pkt.size; #else if(!enc_video_ctx->flush_delayed_frames) outsize = avcodec_encode_audio( audio_codec_data->codec_context, enc_audio_ctx->outbuf, enc_audio_ctx->outbuf_size, audio_data); else outsize = avcodec_encode_audio( audio_codec_data->codec_context, enc_audio_ctx->outbuf, enc_audio_ctx->outbuf_size, NULL); enc_audio_ctx->dts = AV_NOPTS_VALUE; enc_audio_ctx->flags = 0; if (audio_codec_data->codec_context->coded_frame->key_frame) enc_audio_ctx->flags |= AV_PKT_FLAG_KEY; enc_audio_ctx->duration = enc_audio_ctx->pts - last_audio_pts; #endif last_audio_pts = enc_audio_ctx->pts; if(enc_audio_ctx->flush_delayed_frames && outsize == 0) enc_audio_ctx->flush_done = 1; else if(outsize == 0 && enc_audio_ctx->index_of_df < 0) { enc_audio_ctx->delayed_pts[enc_audio_ctx->delayed_frames] = enc_audio_ctx->pts; enc_audio_ctx->delayed_frames++; if(enc_audio_ctx->delayed_frames > MAX_DELAYED_FRAMES) { enc_audio_ctx->delayed_frames = MAX_DELAYED_FRAMES; printf("ENCODER: Maximum of %i delayed audio frames reached...\n", MAX_DELAYED_FRAMES); } } else { if(enc_audio_ctx->delayed_frames > 0) { if(enc_audio_ctx->index_of_df < 0) { enc_audio_ctx->index_of_df = 0; printf("ENCODER: audio codec is using %i delayed audio frames\n", enc_audio_ctx->delayed_frames); } int64_t my_pts = enc_audio_ctx->pts; enc_audio_ctx->pts = enc_audio_ctx->delayed_pts[enc_audio_ctx->index_of_df]; enc_audio_ctx->delayed_pts[enc_audio_ctx->index_of_df] = my_pts; enc_audio_ctx->index_of_df++; if(enc_audio_ctx->index_of_df >= enc_audio_ctx->delayed_frames) enc_audio_ctx->index_of_df = 0; } } enc_audio_ctx->outbuf_coded_size = outsize; return (outsize); } /* * close and clean encoder context * args: * encoder_ctx - pointer to encoder context data * * asserts: * none * * returns: none */ void encoder_close(encoder_context_t *encoder_ctx) { encoder_clean_video_ring_buffer(); if(!encoder_ctx) return; encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; encoder_codec_data_t *video_codec_data = NULL; encoder_codec_data_t *audio_codec_data = NULL; if(encoder_ctx->h264_pps) free(encoder_ctx->h264_pps); if(encoder_ctx->h264_sps) free(encoder_ctx->h264_sps); /*close video codec*/ if(enc_video_ctx) { video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; if(video_codec_data) { if(!(enc_video_ctx->flushed_buffers)) { avcodec_flush_buffers(video_codec_data->codec_context); enc_video_ctx->flushed_buffers = 1; } avcodec_close(video_codec_data->codec_context); free(video_codec_data->codec_context); #if LIBAVCODEC_VER_AT_LEAST(53,6) av_dict_free(&(video_codec_data->private_options)); #endif if(video_codec_data->frame) #if LIBAVCODEC_VER_AT_LEAST(55,28) av_frame_free(&video_codec_data->frame); #else #if LIBAVCODEC_VER_AT_LEAST(54,28) avcodec_free_frame(&video_codec_data->frame); #else av_freep(&video_codec_data->frame); #endif #endif free(video_codec_data); } if(enc_video_ctx->priv_data) free(enc_video_ctx->priv_data); if(enc_video_ctx->tmpbuf) free(enc_video_ctx->tmpbuf); if(enc_video_ctx->outbuf) free(enc_video_ctx->outbuf); free(enc_video_ctx); } /*close audio codec*/ if(enc_audio_ctx) { audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; if(audio_codec_data) { avcodec_flush_buffers(audio_codec_data->codec_context); avcodec_close(audio_codec_data->codec_context); free(audio_codec_data->codec_context); if(audio_codec_data->frame) #if LIBAVCODEC_VER_AT_LEAST(55,28) av_frame_free(&audio_codec_data->frame); #else #if LIBAVCODEC_VER_AT_LEAST(54,28) avcodec_free_frame(&audio_codec_data->frame); #else av_freep(&audio_codec_data->frame); #endif #endif free(audio_codec_data); } if(enc_audio_ctx->priv_data) free(enc_audio_ctx->priv_data); if(enc_audio_ctx->outbuf) free(enc_audio_ctx->outbuf); free(enc_audio_ctx); } free(encoder_ctx); /*reset static data*/ last_video_pts = 0; last_audio_pts = 0; reference_pts = 0; video_frame_max_size = 0; video_ring_buffer_size = 0; video_ring_buffer = NULL; video_read_index = 0; video_write_index = 0; video_scheduler = 0; } guvcview-2.0.2+debian/gview_encoder/encoder.h000066400000000000000000000233341256377215300212200ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # George Sedov # # - Threaded encoding # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef ENCODER_H #define ENCODER_H #include #include #include "../config.h" #ifdef HAVE_FFMPEG_AVCODEC_H #include #else #include #ifdef HAVE_LIBAVUTIL_VERSION_H #include #else #include #endif #endif #define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ (LIBAVCODEC_VERSION_MAJOR == major && \ LIBAVCODEC_VERSION_MINOR >= minor)) #ifdef LIBAVUTIL_VERSION_MAJOR #define LIBAVUTIL_VER_AT_LEAST(major,minor) (LIBAVUTIL_VERSION_MAJOR > major || \ (LIBAVUTIL_VERSION_MAJOR == major && \ LIBAVUTIL_VERSION_MINOR >= minor)) #else #define LIBAVUTIL_VER_AT_LEAST(major,minor) 0 #endif #if !LIBAVCODEC_VER_AT_LEAST(53,0) #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 #define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT #endif #if !LIBAVCODEC_VER_AT_LEAST(54,25) #define AV_CODEC_ID_NONE CODEC_ID_NONE #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG #define AV_CODEC_ID_MPEG1VIDEO CODEC_ID_MPEG1VIDEO #define AV_CODEC_ID_FLV1 CODEC_ID_FLV1 #define AV_CODEC_ID_WMV1 CODEC_ID_WMV1 #define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO #define AV_CODEC_ID_MSMPEG4V3 CODEC_ID_MSMPEG4V3 #define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4 #define AV_CODEC_ID_H264 CODEC_ID_H264 #define AV_CODEC_ID_VP8 CODEC_ID_VP8 #define AV_CODEC_ID_THEORA CODEC_ID_THEORA #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE #define AV_CODEC_ID_PCM_F32LE CODEC_ID_PCM_F32LE #define AV_CODEC_ID_MP2 CODEC_ID_MP2 #define AV_CODEC_ID_MP3 CODEC_ID_MP3 #define AV_CODEC_ID_AC3 CODEC_ID_AC3 #define AV_CODEC_ID_AAC CODEC_ID_AAC #define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS #endif #if !LIBAVUTIL_VER_AT_LEAST(52,0) #define AV_PIX_FMT_NONE PIX_FMT_NONE #define AV_PIX_FMT_YUVJ420P PIX_FMT_YUVJ420P #define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P #endif /* Possible Audio formats */ #define WAVE_FORMAT_UNKNOWN (0x0000) #define WAVE_FORMAT_PCM (0x0001) #define WAVE_FORMAT_ADPCM (0x0002) #define WAVE_FORMAT_IEEE_FLOAT (0x0003) #define WAVE_FORMAT_IBM_CVSD (0x0005) #define WAVE_FORMAT_ALAW (0x0006) #define WAVE_FORMAT_MULAW (0x0007) #define WAVE_FORMAT_OKI_ADPCM (0x0010) #define WAVE_FORMAT_DVI_ADPCM (0x0011) #define WAVE_FORMAT_DIGISTD (0x0015) #define WAVE_FORMAT_DIGIFIX (0x0016) #define WAVE_FORMAT_YAMAHA_ADPCM (0x0020) #define WAVE_FORMAT_DSP_TRUESPEECH (0x0022) #define WAVE_FORMAT_GSM610 (0x0031) #define WAVE_FORMAT_MP3 (0x0055) #define WAVE_FORMAT_MPEG12 (0x0050) #define WAVE_FORMAT_AAC (0x00ff) #define WAVE_FORMAT_IBM_MULAW (0x0101) #define WAVE_FORMAT_IBM_ALAW (0x0102) #define WAVE_FORMAT_IBM_ADPCM (0x0103) #define WAVE_FORMAT_AC3 (0x2000) /*extra audio formats (codecs)*/ #define ANTEX_FORMAT_ADPCME (0x0033) #define AUDIO_FORMAT_APTX (0x0025) #define AUDIOFILE_FORMAT_AF10 (0x0026) #define AUDIOFILE_FORMAT_AF36 (0x0024) #define BROOKTREE_FORMAT_BTVD (0x0400) #define CANOPUS_FORMAT_ATRAC (0x0063) #define CIRRUS_FORMAT_CIRRUS (0x0060) #define CONTROL_FORMAT_CR10 (0x0037) #define CONTROL_FORMAT_VQLPC (0x0034) #define CREATIVE_FORMAT_ADPCM (0x0200) #define CREATIVE_FORMAT_FASTSPEECH10 (0x0203) #define CREATIVE_FORMAT_FASTSPEECH8 (0x0202) #define IMA_FORMAT_ADPCM (0x0039) #define CONSISTENT_FORMAT_CS2 (0x0260) #define HP_FORMAT_CU (0x0019) #define DEC_FORMAT_G723 (0x0123) #define DF_FORMAT_G726 (0x0085) #define DSP_FORMAT_ADPCM (0x0036) #define DOLBY_FORMAT_AC2 (0x0030) #define DOLBY_FORMAT_AC3_SPDIF (0x0092) #define ESS_FORMAT_ESPCM (0x0061) #define IEEE_FORMAT_FLOAT (0x0003) #define MS_FORMAT_MSAUDIO1_DIVX (0x0160) #define MS_FORMAT_MSAUDIO2_DIVX (0x0161) #define OGG_FORMAT_VORBIS (0x566f) #define OGG_FORMAT_VORBIS1 (0x674f) #define OGG_FORMAT_VORBIS1P (0x676f) #define OGG_FORMAT_VORBIS2 (0x6750) #define OGG_FORMAT_VORBIS2P (0x6770) #define OGG_FORMAT_VORBIS3 (0x6751) #define OGG_FORMAT_VORBIS3P (0x6771) #define MS_FORMAT_WMA9 (0x0163) #define MS_FORMAT_WMA9_PRO (0x0162) /*video buffer flags*/ #define VIDEO_BUFF_FREE (0) #define VIDEO_BUFF_USED (1) /* * codec data struct used for encoder context * we set all avcodec stuff here so that we don't * need to export any of it's symbols in the public API */ typedef struct _encoder_codec_data_t { AVCodec *codec; #if LIBAVCODEC_VER_AT_LEAST(53,6) AVDictionary *private_options; #endif AVCodecContext *codec_context; AVFrame *frame; AVPacket *outpkt; } encoder_codec_data_t; typedef struct _bmp_info_header_t { uint32_t biSize; /*size of this header 40 bytes*/ int32_t biWidth; int32_t biHeight; uint16_t biPlanes; /*color planes - set to 1*/ uint16_t biBitCount; /*bits per pixel - color depth (use 24)*/ uint32_t biCompression; /*BI_RGB = 0*/ uint32_t biSizeImage; uint32_t biXPelsPerMeter; uint32_t biYPelsPerMeter; uint32_t biClrUsed; uint32_t biClrImportant; } __attribute__ ((packed)) bmp_info_header_t; /* * get default mkv_codecPriv * args: * none * * asserts: * none * * returns: pointer to bmp_info_header_t */ bmp_info_header_t *get_default_mkv_codecPriv(); /* * split xiph headers from libav private data * args: * extradata - libav codec private data * extradata_size - codec private data size * first_header_size - first header size * header_start - first 3 bytes of header * header_len - header length * * asserts: * none * * returns: error code */ int avpriv_split_xiph_headers( uint8_t *extradata, int extradata_size, int first_header_size, uint8_t *header_start[3], int header_len[3]); /* * set yu12 frame in codec data frame * args: * video_codec_data - pointer to video codec data * inp - input data (yu12) * width - frame width * height - frame height * * asserts: * video_codec_data is not null * inp is not null * * returns: none */ void prepare_video_frame(encoder_codec_data_t *encoder_ctx, uint8_t *inp, int width, int height); /* * returns the real codec array index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_video_codec_index(int codec_id); /* * returns the list codec index * args: * codec_id - codec id * * asserts: * none * * returns: list index or -1 if none */ int get_video_codec_list_index(int codec_id); /* * returns the real codec array index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_audio_codec_index(int codec_id); /* * returns the list codec index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_audio_codec_list_index(int codec_id); /* * get audio mkv codec * args: * codec_ind - codec list index * * asserts: * none * * returns: mkv codec entry or NULL if none */ const char *encoder_get_audio_mkv_codec(int codec_ind); /* * get video mkv codec * args: * codec_ind - codec list index * * asserts: * none * * returns: mkv codec entry or NULL if none */ const char *encoder_get_video_mkv_codec(int codec_ind); /* * get video compressor (avi 4cc code) * args: * codec_ind - codec list index * * asserts: * none * * returns: compressor codec entry or NULL if none */ const char *encoder_get_video_codec_4cc(int codec_ind); /* * get audio codec bits * args: * codec_ind - codec list index * * asserts: * none * * returns: bits entry from audio codec list */ int encoder_get_audio_bits(int codec_ind); /* * get audio codec bit rate * args: * codec_ind - codec list index * * asserts: * none * * returns: bit_rate entry from audio codec list */ int encoder_get_audio_bit_rate(int codec_ind); #endif guvcview-2.0.2+debian/gview_encoder/file_io.c000066400000000000000000000321511256377215300211770ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewencoder.h" #include "file_io.h" #include "gview.h" /* * get the file position pointer * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: the file position pointer */ static int64_t io_tell(io_writer_t *writer) { /*assertions*/ assert(writer != NULL); if(writer->fp == NULL) { fprintf(stderr, "ENCODER: (io_tell) no file pointer associated with io_writer (mem only ?)\n"); return -1; } /*flush the file buffer*/ fflush(writer->fp); /*return the file pointer position*/ return ((int64_t) ftello64(writer->fp)); } /* flush a mem only writer(buf_writer) into a file writer * args: * file_writer - pointer to a file io_writer * buf_writer -pointer to a buf io_writer * * asserts: * * returns: delta between file and buffer writer positions */ //static int io_flush_buf_writer(io_writer_t *file_writer, io_writer_t *buf_writer) //{ // int size = (int) (buf_writer->buf_ptr - buf_writer->buffer); // io_write_buf(file_writer, buf_writer->buffer, size); // buf_writer->buf_ptr = buf_writer->buffer; // // return size; //} /* * create a new writer: * args: * filename - file for write to (if NULL mem only writer) * max_size - mem buffer size (if 0 use default) * * asserts: * none * * returns: pointer to io_writer */ io_writer_t *io_create_writer(const char *filename, int max_size) { io_writer_t *writer = calloc(1, sizeof(io_writer_t)); if(writer == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (io_create_writer): %s\n", strerror(errno)); exit(-1); } if(max_size > 0) writer->buffer_size = max_size; else writer->buffer_size = IO_BUFFER_SIZE; writer->buffer = calloc(writer->buffer_size, sizeof(uint8_t)); if(writer->buffer == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (io_create_writer): %s\n", strerror(errno)); exit(-1); } writer->buf_ptr = writer->buffer; writer->buf_end = writer->buf_ptr + writer->buffer_size; if(filename != NULL) { writer->fp = fopen(filename, "wb"); if (writer->fp == NULL) { fprintf(stderr, "ENCODER: Could not open file for writing: %s\n", strerror(errno)); free(writer); return NULL; } } else writer->fp = NULL; /*mem only writer (must be flushed to a file writer*/ return writer; } /* * destroy the writer (clean up) * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: none */ void io_destroy_writer(io_writer_t *writer) { /*assertions*/ assert(writer != NULL); if(writer->fp != NULL) { /* flush the buffer to file*/ io_flush_buffer(writer); /* flush the file buffer*/ fflush(writer->fp); /* close the file pointer */ fclose(writer->fp); } /*clean the mem buffer*/ free(writer->buffer); } /* * flush the writer buffer to disk * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: current offset */ int64_t io_flush_buffer(io_writer_t *writer) { /*assertions*/ assert(writer != NULL); if(writer->fp == NULL) { fprintf(stderr, "ENCODER: (io_flush) no file pointer associated with writer (mem only ?)\n"); fprintf(stderr, "ENCODER: (io_flush) try to increase buffer size\n"); return -1; } size_t nitems = 0; if (writer->buf_ptr > writer->buffer) { nitems= writer->buf_ptr - writer->buffer; if(fwrite(writer->buffer, 1, nitems, writer->fp) < nitems) { fprintf(stderr, "ENCODER: (io_flush) file write error: %s\n", strerror(errno)); return -1; } } else if (writer->buf_ptr < writer->buffer) { fprintf(stderr, "ENCODER: (io_flush) bad buffer pointer - dropping buffer\n"); writer->buf_ptr = writer->buffer; return -1; } int64_t size_inc = nitems - (writer->size - writer->position); if(size_inc > 0) writer->size += size_inc; writer->position = io_tell(writer); /*update current file pointer position*/ writer->buf_ptr = writer->buffer; /*should never happen*/ if(writer->position > writer->size) { fprintf(stderr, "ENCODER: (io_flush) file pointer ( %" PRIu64 " ) above expected file size ( %" PRIu64 " )\n", writer->position, writer->size); writer->size = writer->position; } return writer->position; } /* * move the writer pointer to position * args: * writer - pointer to io_writer * position - new position offset * * asserts: * writer is not null * * returns: error code */ int io_seek(io_writer_t *writer, int64_t position) { /*assertions*/ assert(writer != NULL); int ret = 0; if(position <= writer->size) //position is on the file { if(writer->fp == NULL) { fprintf(stderr, "ENCODER: (io_seek) no file pointer associated with writer (mem only ?)\n"); return -1; } /*flush the memory buffer (we need an empty buffer)*/ io_flush_buffer(writer); /*try to move the file pointer to position*/ int ret = fseeko(writer->fp, position, SEEK_SET); if(ret != 0) fprintf(stderr, "ENCODER: (io_seek) seek to file position %" PRIu64 "failed\n", position); else writer->position = io_tell(writer); /*update current file pointer position*/ /*we are now on position with an empty memory buffer*/ } else /* position is on the buffer*/ { /*move file pointer to EOF*/ if(writer->position != writer->size) { fseeko(writer->fp, writer->size, SEEK_SET); writer->position = writer->size; } /*move buffer pointer to position*/ writer->buf_ptr = writer->buffer + (position - writer->size); } return ret; } /* * move file pointer by offset * args: * writer - pointer to io_writer * offset - offset value to skip * * asserts: * writer is not null * * returns: error code */ int io_skip(io_writer_t *writer, int offset) { /*assertions*/ assert(writer != NULL); if(writer->fp == NULL) { fprintf(stderr, "ENCODER: (io_skip) no file pointer associated with writer (mem only ?)\n"); return -1; } /*flush the memory buffer (clean buffer)*/ io_flush_buffer(writer); /*try to move the file pointer to position*/ int ret = fseeko(writer->fp, offset, SEEK_CUR); if(ret != 0) fprintf(stderr, "ENCODER: (io_skip) skip file pointer by 0x%x failed\n", offset); writer->position = io_tell(writer); //update current file pointer position /*we are on position with an empty memory buffer*/ return ret; } /* * get writer offset (current position) * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: current writer position offset */ int64_t io_get_offset(io_writer_t *writer) { /*assertions*/ assert(writer != NULL); /*buffer offset*/ int64_t offset = writer->buf_ptr - writer->buffer; if(offset < 0) { fprintf(stderr, "ENCODER: (io_get_offset) bad buf pointer\n"); writer->buf_ptr = writer->buffer; offset = 0; } /*add to file offset*/ offset += writer->position; return offset; } /* * write 1 octet * args: * writer - pointer to io_writer * b - octect to write * * asserts: * writer is not null * * returns: none */ void io_write_w8(io_writer_t *writer, uint8_t b) { *writer->buf_ptr++ = b; if (writer->buf_ptr >= writer->buf_end) io_flush_buffer(writer); } /* * write a buffer of size * args: * writer - pointer to io_writer * buf - data buffer to write * size - size of buffer * * asserts: * writer is not null * * returns: none */ void io_write_buf(io_writer_t *writer, uint8_t *buf, int size) { while (size > 0) { int len = writer->buf_end - writer->buf_ptr; if(len < 0) fprintf(stderr,"ENCODER: (io_write_buf) buff pointer outside buffer\n"); if(len >= size) len = size; memcpy(writer->buf_ptr, buf, len); writer->buf_ptr += len; if (writer->buf_ptr >= writer->buf_end) io_flush_buffer(writer); buf += len; size -= len; } } /* * write 2 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl16(io_writer_t *writer, uint16_t val) { io_write_w8(writer, (uint8_t) val); io_write_w8(writer, (uint8_t) (val >> 8)); } /* * write 2 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb16(io_writer_t *writer, uint16_t val) { io_write_w8(writer, (uint8_t) (val >> 8)); io_write_w8(writer, (uint8_t) val); } /* * write 3 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ //void io_write_wl24(io_writer_t *writer, uint32_t val) //{ // io_write_wl16(writer, (uint16_t) (val & 0xffff)); // io_write_w8(writer, (uint8_t) (val >> 16)); //} /* * write 3 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ //void io_write_wb24(io_writer_t *writer, uint32_t val) //{ // io_write_wb16(writer, (uint16_t) (val >> 8)); // io_write_w8(writer, (uint8_t) val); //} /* * write 4 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl32(io_writer_t *writer, uint32_t val) { io_write_w8(writer, (uint8_t) val); io_write_w8(writer, (uint8_t) (val >> 8)); io_write_w8(writer, (uint8_t) (val >> 16)); io_write_w8(writer, (uint8_t) (val >> 24)); } /* * write 4 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb32(io_writer_t *writer, uint32_t val) { io_write_w8(writer, (uint8_t) (val >> 24)); io_write_w8(writer, (uint8_t) (val >> 16)); io_write_w8(writer, (uint8_t) (val >> 8)); io_write_w8(writer, (uint8_t) val); } /* * write 8 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl64(io_writer_t *writer, uint64_t val) { io_write_wl32(writer, (uint32_t)(val & 0xffffffff)); io_write_wl32(writer, (uint32_t)(val >> 32)); } /* * write 4 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb64(io_writer_t *writer, uint64_t val) { io_write_wb32(writer, (uint32_t)(val >> 32)); io_write_wb32(writer, (uint32_t)(val & 0xffffffff)); } /* * write 4cc code * args: * writer - pointer to io_writer * str - 4 char string with 4cc code * * asserts: * writer is not null * * returns: none */ void io_write_4cc(io_writer_t *writer, const char *str) { int len = 4; if(strlen(str) < len ) { len = strlen(str); } io_write_buf(writer, (uint8_t *) str, len); len = 4 - len; /*fill remaining chars with spaces*/ while(len > 0) { io_write_w8(writer, ' '); len--; } } /* * write a string (null terminated) * args: * writer - pointer to io_writer * str - 4 char string with 4cc code * * asserts: * writer is not null * * returns: the size writen */ //int io_write_str(io_writer_t * writer, const char *str) //{ // int len = 1; // if (str) { // len += strlen(str); // io_write_buf(writer, (uint8_t *) str, len); // } else // io_write_w8(writer, 0); // return len; //} guvcview-2.0.2+debian/gview_encoder/file_io.h000066400000000000000000000147531256377215300212140ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef FILE_IO_H #define FILE_IO_H #include #include #include #include "../config.h" #define IO_BUFFER_SIZE 32768 typedef struct _io_writer_t { FILE *fp; /* file pointer */ uint8_t *buffer; /* Start of the buffer. */ int buffer_size; /* Maximum buffer size */ uint8_t *buf_ptr; /* Current position in the buffer */ uint8_t *buf_end; /* End of the buffer. */ int64_t size; //file size (end of file position) int64_t position; //file pointer position (updates on buffer flush) } io_writer_t; /* * create a new writer: * args: * filename - file for write to (if NULL mem only writer) * max_size - mem buffer size (if 0 use default) * * asserts: * none * * returns: pointer to io_writer */ io_writer_t *io_create_writer(const char *filename, int max_size); /* * destroy the writer (clean up) * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: none */ void io_destroy_writer(io_writer_t *writer); /* * flush the writer buffer to disk * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: current offset */ int64_t io_flush_buffer(io_writer_t *writer); /* * move the writer pointer to position * args: * writer - pointer to io_writer * position - new position offset * * asserts: * writer is not null * * returns: error code */ int io_seek(io_writer_t *writer, int64_t position); /* * move file pointer by offset * args: * writer - pointer to io_writer * offset - offset value to skip * * asserts: * writer is not null * * returns: error code */ int io_skip(io_writer_t *writer, int offset); /* * get writer offset (current position) * args: * writer - pointer to io_writer * * asserts: * writer is not null * * returns: current writer position offset */ int64_t io_get_offset(io_writer_t *writer); /* * write 1 octet * args: * writer - pointer to io_writer * b - octect to write * * asserts: * writer is not null * * returns: none */ void io_write_w8(io_writer_t *writer, uint8_t b); /* * write a buffer of size * args: * writer - pointer to io_writer * buf - data buffer to write * size - size of buffer * * asserts: * writer is not null * * returns: none */ void io_write_buf(io_writer_t *writer, uint8_t *buf, int size); /* * write 2 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl16(io_writer_t *writer, uint16_t val); /* * write 2 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb16(io_writer_t *writer, uint16_t val); /* write 3 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ //void io_write_wl24(io_writer_t *writer, uint32_t val); /* * write 3 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ //void io_write_wb24(io_writer_t *writer, uint32_t val); /* * write 4 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl32(io_writer_t *writer, uint32_t val); /* * write 4 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb32(io_writer_t *writer, uint32_t val); /* * write 8 octets (little endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wl64(io_writer_t *writer, uint64_t val); /* * write 4 octets (bid endian) * args: * writer - pointer to io_writer * val - value to write * * asserts: * writer is not null * * returns: none */ void io_write_wb64(io_writer_t *writer, uint64_t val); /* * write 4cc code * args: * writer - pointer to io_writer * str - 4 char string with 4cc code * * asserts: * writer is not null * * returns: none */ void io_write_4cc(io_writer_t *writer, const char *str); /* * write a string (null terminated) * args: * writer - pointer to io_writer * str - 4 char string with 4cc code * * asserts: * writer is not null * * returns: the size writen */ //int io_write_str(io_writer_t * writer, const char *str); #if BIGENDIAN #define io_write_w16 io_write_wb16 #define io_write_w24 io_write_wb24 #define io_write_w32 io_write_wb32 #define io_write_w64 io_write_wb64 #else #define io_write_w16 io_write_wl16 #define io_write_w24 io_write_wl24 #define io_write_w32 io_write_wl32 #define io_write_w64 io_write_wl64 #endif #endif guvcview-2.0.2+debian/gview_encoder/gviewencoder.h000066400000000000000000000416201256377215300222600ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Encoder library # # # ********************************************************************************/ #ifndef GVIEWENCODER_H #define GVIEWENCODER_H #include #include #include /*make sure we support c++*/ __BEGIN_DECLS /*encoder modes*/ #define ENCODER_MODE_NONE (0) #define ENCODER_MODE_RAW (1) /*Muxer defs*/ #define ENCODER_MUX_MKV (0) #define ENCODER_MUX_WEBM (1) #define ENCODER_MUX_AVI (2) /*Scheduler Modes*/ #define ENCODER_SCHED_LIN (0) #define ENCODER_SCHED_EXP (1) /*audio sample format*/ #ifndef GV_SAMPLE_TYPE_INT16 #define GV_SAMPLE_TYPE_INT16 (0) //interleaved #define GV_SAMPLE_TYPE_FLOAT (1) //interleaved #define GV_SAMPLE_TYPE_INT16P (2) //planar #define GV_SAMPLE_TYPE_FLOATP (3) //planar #endif #define MAX_DELAYED_FRAMES 50 /*Maximum supported delayed frames*/ /*video buffer*/ typedef struct _video_buffer_t { uint8_t *frame; /*uncompressed*/ int frame_size; int64_t timestamp; int keyframe; /* 1-keyframe; 0-non keyframe (only for direct input)*/ int flag; /*VIDEO_BUFF_FREE | VIDEO_BUFF_USED*/ } video_buffer_t; /*video codec properties*/ typedef struct _video_codec_t { int valid; //the encoding codec exists in libav char compressor[5]; //fourcc - upper case int mkv_4cc; //fourcc WORD value char mkv_codec[25]; //mkv codecID void *mkv_codecPriv; //mkv codec private data char description[35]; //codec description int pix_fmt; //codec input pixel format int fps; // encoder frame rate (used for time base) int bit_rate; //lavc default bit rate int qmax; //lavc qmax int qmin; //lavc qmin int max_qdiff; //lavc qmin int dia; //lavc dia_size int pre_dia; //lavc pre_dia_size int pre_me; //lavc pre_me int me_pre_cmp; //lavc me_pre_cmp int me_cmp; //lavc me_cmp int me_sub_cmp; //lavc me_sub_cmp int last_pred; //lavc last_predictor_count int gop_size; //lavc gop_size float qcompress; //lavc qcompress float qblur; //lavc qblur int subq; //lavc subq int framerefs; //lavc refs int codec_id; //lavc codec_id char codec_name[20]; //lavc codec_name int mb_decision; //lavc mb_decision int trellis; //lavc trellis quantization int me_method; //lavc motion estimation method int mpeg_quant; //lavc mpeg quantization int max_b_frames; //lavc max b frames int num_threads; //lavc num threads int flags; //lavc flags int monotonic_pts; //use monotonic pts instead of timestamp based } video_codec_t; /*audio codec properties*/ typedef struct _audio_codec_t { int valid; //the encoding codec exists in ffmpeg int bits; //bits per sample (pcm only) int monotonic_pts; uint16_t avi_4cc; //fourcc value (4 bytes) char mkv_codec[25]; //mkv codecID char description[35]; //codec description int bit_rate; //lavc default bit rate int codec_id; //lavc codec_id char codec_name[20]; //lavc codec name int sample_format; //lavc sample format int profile; //for AAC only void *mkv_codpriv; //pointer for codec private data int codpriv_size; //size in bytes of private data int flags; //lavc flags char name[5]; //common 4cc name (lowercase) } audio_codec_t; /*video*/ typedef struct _encoder_video_context_t { void *codec_data; int monotonic_pts; /*delayed frames handling*/ int delayed_frames; int index_of_df; /*index of delayed frame pts in use;*/ int64_t delayed_pts[MAX_DELAYED_FRAMES]; /*delayed frames pts*/ int flush_delayed_frames; int flushed_buffers; int flush_done; uint8_t *priv_data; uint8_t* tmpbuf; int outbuf_size; uint8_t* outbuf; int outbuf_coded_size; int64_t framecount; int64_t pts; int64_t dts; int flags; int duration; } encoder_video_context_t; /*Audio*/ typedef struct _encoder_audio_context_t { void *codec_data; int avi_4cc; int monotonic_pts; /*delayed frames handling*/ int delayed_frames; int index_of_df; /*index of delayed frame pts in use;*/ int64_t delayed_pts[MAX_DELAYED_FRAMES]; /*delayed frames pts*/ int flush_delayed_frames; int flushed_buffers; int flush_done; uint8_t *priv_data; int outbuf_size; uint8_t* outbuf; int outbuf_coded_size; int64_t pts; int64_t dts; int flags; int duration; } encoder_audio_context_t; typedef struct _encoder_context_t { int muxer_id; int input_format; int video_codec_ind; int audio_codec_ind; int video_width; int video_height; int fps_num; int fps_den; int audio_channels; int audio_samprate; encoder_video_context_t *enc_video_ctx; encoder_audio_context_t *enc_audio_ctx; /*external h264 encoder data*/ int h264_pps_size; uint8_t *h264_pps; int h264_sps_size; uint8_t *h264_sps; } encoder_context_t; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void encoder_set_verbosity(int value); /* * encoder initaliztion (first function to get called) * args: * none * * asserts: * none * * returns: none */ void encoder_init(); /* * get valid video codec count * args: * none * * asserts: * none * * returns: number of valid video codecs */ int encoder_get_valid_video_codecs(); /* * get valid audio codec count * args: * none * * asserts: * none * * returns: number of valid audio codecs */ int encoder_get_valid_audio_codecs(); /* * sets the valid flag in the video codecs list * args: * none * * asserts: * none * * returns: number of valid video codecs in list */ int encoder_set_valid_video_codec_list (); /* * sets the valid flag in the audio codecs list * args: * none * * asserts: * none * * returns: number of valid audio codecs in list */ int encoder_set_valid_audio_codec_list (); /* * get video list codec description * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ const char *encoder_get_video_codec_description(int codec_ind); /* * get audio list codec description * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ const char *encoder_get_audio_codec_description(int codec_ind); /* * initialize and get the encoder context * args: * input_format - input v4l2 format (yuyv for encoding) * video_codec_ind - video codec list index * audio_codec_ind - audio codec list index * muxer_id - file muxer: * ENCODER_MUX_MKV; ENCODER_MUX_WEBM; ENCODER_MUX_AVI * video_width - video frame width * video_height - video frame height * fps_num - fps numerator * fps_den - fps denominator * audio_channels- audio channels * audio_samprate- audio sample rate * * asserts: * none * * returns: pointer to encoder context (NULL on error) */ encoder_context_t *encoder_get_context( int input_format, int video_codec_ind, int audio_codec_ind, int muxer_id, int video_width, int video_height, int fps_num, int fps_den, int audio_channels, int audio_samprate); /* * initialization of the file muxer * args: * encoder_ctx - pointer to encoder context * filename - video filename * * asserts: * encoder_ctx is not null * * returns: none */ void encoder_muxer_init(encoder_context_t *encoder_ctx, const char *filename); /* * close the file muxer * args: * encoder_ctx - pointer to encoder context * * asserts: * none * * returns: none */ void encoder_muxer_close(encoder_context_t *encoder_ctx); /* * get video list codec entry for codec index * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ video_codec_t *encoder_get_video_codec_defaults(int codec_ind); /* * get audio list codec entry for codec index * args: * codec_ind - codec list index * * asserts: * none * * returns: audio list codec entry or NULL if none */ audio_codec_t *encoder_get_audio_codec_defaults(int codec_ind); /* * checks if the video codec index corresponds to VP8 (webm) codec * args: * codec_ind - video codec list index * * asserts: * none * * returns: 1 true; 0 false */ int encoder_check_webm_video_codec(int codec_ind); /* * get video codec list index for avi 4cc * args: * codec_4cc - codec 4cc * * asserts: * none * * returns: codec index or -1 if error */ int encoder_get_video_codec_ind_4cc(const char *codec_4cc); /* * get video compressor (avi 4cc code) * args: * codec_ind - codec list index * * asserts: * none * * returns: compressor codec entry or NULL if none */ const char *encoder_get_video_codec_4cc(int codec_ind); /* * get audio codec name * args: * codec_ind - codec list index * * asserts: * none * * returns: codec name entry */ const char *encoder_get_audio_codec_name(int codec_ind); /* * get audio sample format max value * args: * none * * returns the maximum audio sample format value */ int encoder_get_max_audio_sample_fmt(); /* * get audio codec list index for codec name * args: * codec_name - codec common name * * asserts: * none * * returns: codec index or -1 if error */ int encoder_get_audio_codec_ind_name(const char *codec_name); /* * get the audio encoder frame size * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: audio encoder frame size */ int encoder_get_audio_frame_size(encoder_context_t *encoder_ctx); /* * get the audio encoder input sample format * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: audio encoder sample format */ int encoder_get_audio_sample_fmt(encoder_context_t *encoder_ctx); /* * get the video codec index for VP8 (webm) codec * args: * none * * asserts: * none * * returns: index for VP8 codec or -1 if error */ int encoder_get_webm_video_codec_index(); /* * checks if the audio codec index corresponds to Vorbis (webm) codec * args: * codec_ind - audio codec list index * * asserts: * none * * returns: 1 true; 0 false */ int encoder_check_webm_audio_codec(int codec_ind); /* * get the audio codec index for Vorbis (webm) codec * args: * none * * asserts: * none * * returns: index for Vorbis codec or -1 if error */ int encoder_get_webm_audio_codec_index(); /* * get the mkv codec private data * args: * codec_ind - codec list index * * asserts: * none * * returns: pointer to mkvCodecPriv data */ void *encoder_get_video_mkvCodecPriv(int codec_ind); /* * set the video codec mkv private data * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: mkvCodecPriv size */ int encoder_set_video_mkvCodecPriv(encoder_context_t *encoder_ctx); /* * get the mkv codec private data * args: * codec_ind - codec list index * * asserts: * none * * returns: pointer to mkvCodecPriv data */ void *encoder_get_audio_mkvCodecPriv(int codec_ind); /* * set the audio codec mkv private data * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: mkvCodecPriv size */ int encoder_set_audio_mkvCodecPriv(encoder_context_t *encoder_ctx); /* * get an estimated write loop sleep time to avoid a ring buffer overrun * args: * mode: scheduler mode: * 0 - linear funtion; 1 - exponencial funtion * thresh: ring buffer threshold in wich scheduler becomes active: * [0.2 (20%) - 0.9 (90%)] * max_time - maximum scheduler time (in ms) * * asserts: * none * * returns: estimate sleep time (nanosec) */ uint32_t encoder_buff_scheduler(int mode, double thresh, int max_time); /* * store unprocessed input video frame in video ring buffer * args: * frame - pointer to unprocessed frame data * size - frame size (in bytes) * timestamp - frame timestamp (in nanosec) * isKeyframe - flag if it's a key(IDR) frame * * asserts: * none * * returns: error code */ int encoder_add_video_frame(uint8_t *frame, int size, int64_t timestamp, int isKeyframe); /* * process next video frame on the ring buffer (encode and mux to file) * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_process_next_video_buffer(encoder_context_t *encoder_ctx); /* * process all used video frames from buffer * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_flush_video_buffer(encoder_context_t *encoder_ctx); /* * process audio buffer (encode and mux to file) * args: * encoder_ctx - pointer to encoder context * data - audio buffer * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_process_audio_buffer(encoder_context_t *encoder_ctx, void *data); /* * process all delayed audio frames from libavcodec * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: error code */ int encoder_flush_audio_buffer(encoder_context_t *encoder_ctx); /* * encode video frame * args: * encoder_ctx - pointer to encoder context * yuv_frame - yuyv input frame * * asserts: * none * * returns: encoded buffer size */ int encoder_encode_video(encoder_context_t *encoder_ctx, void *yuv_frame); /* * encode audio * args: * encoder_ctx - pointer to encoder context * audio_data - pointer to audio pcm data * * asserts: * none * * returns: encoded buffer size */ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data); /* * close and clean encoder context * args: * encoder_ctx - pointer to encoder context data * * asserts: * none * * returns: none */ void encoder_close(encoder_context_t *encoder_ctx); /* * mux a video frame * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null; * * returns: none */ int encoder_write_video_data(encoder_context_t *encoder_ctx); /* * mux a audio frame * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null; * * returns: none */ int encoder_write_audio_data(encoder_context_t *encoder_ctx); /* * function to determine if enought free space is available * args: * treshold: limit treshold in Kbytes (min. free space) * * asserts: * none * * returns: 1 if still enough free space left on disk * 0 otherwise */ int encoder_disk_supervisor(int treshold, const char *path); __END_DECLS #endif guvcview-2.0.2+debian/gview_encoder/libav_encoder.c000066400000000000000000000112721256377215300223660ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # George Sedov # # - Threaded encoding # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewencoder.h" #include "encoder.h" #define AV_RB16(x) \ ((((const uint8_t*)(x))[0] << 8) | \ ((const uint8_t*)(x))[1]) /* * set yu12 frame in codec data frame * args: * video_codec_data - pointer to video codec data * inp - input data (yu12) * width - frame width * height - frame height * * asserts: * video_codec_data is not null * inp is not null * * returns: none */ void prepare_video_frame(encoder_codec_data_t *video_codec_data, uint8_t *inp, int width, int height) { /*assertions*/ assert(video_codec_data); assert(inp); int size = width * height; video_codec_data->frame->data[0] = inp; //Y video_codec_data->frame->data[1] = inp + size; //U video_codec_data->frame->data[2] = video_codec_data->frame->data[1] + size/4; //V video_codec_data->frame->linesize[0] = width; video_codec_data->frame->linesize[1] = width / 2; video_codec_data->frame->linesize[2] = width / 2; } /* * split xiph headers from libav private data * args: * extradata - libav codec private data * extradata_size - codec private data size * first_header_size - first header size * header_start - first 3 bytes of header * header_len - header length * * asserts: * none * * returns: error code */ int avpriv_split_xiph_headers( uint8_t *extradata, int extradata_size, int first_header_size, uint8_t *header_start[3], int header_len[3]) { int i; if (extradata_size >= 6 && AV_RB16(extradata) == first_header_size) { int overall_len = 6; for (i=0; i<3; i++) { header_len[i] = AV_RB16(extradata); extradata += 2; header_start[i] = extradata; extradata += header_len[i]; if (overall_len > extradata_size - header_len[i]) return -1; overall_len += header_len[i]; } } else if (extradata_size >= 3 && extradata_size < INT_MAX - 0x1ff && extradata[0] == 2) { int overall_len = 3; extradata++; for (i=0; i<2; i++, extradata++) { header_len[i] = 0; for (; overall_len < extradata_size && *extradata==0xff; extradata++) { header_len[i] += 0xff; overall_len += 0xff + 1; } header_len[i] += *extradata; overall_len += *extradata; if (overall_len > extradata_size) return -1; } header_len[2] = extradata_size - overall_len; header_start[0] = extradata; header_start[1] = header_start[0] + header_len[0]; header_start[2] = header_start[1] + header_len[1]; } else { return -1; } return 0; } guvcview-2.0.2+debian/gview_encoder/matroska.c000066400000000000000000001120421256377215300214100ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # This is a heavily modified version of the matroska interface from x264 # # Copyright (C) 2005 Mike Matsnev # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" /*random generator (HAS_GSL is set in ../config.h)*/ #ifdef HAS_GSL #include #else #include #endif #include "gviewencoder.h" #include "encoder.h" #include "stream_io.h" #include "file_io.h" #include "matroska.h" #include "gview.h" /* * default size of pkt ring buffer * for caching audio frames * aprox. 2 sec for 44100 samp/sec with * each buffer containing 1152 samples * vorbis as 64 samples */ #define PKT_BUFFER_DEF_SIZE 78 /** 2 bytes * 3 for EBML IDs, 3 1-byte EBML lengths, 8 bytes for 64 bit * offset, 4 bytes for target EBML ID */ #define MAX_SEEKENTRY_SIZE 21 /** per-cuepoint-track - 3 1-byte EBML IDs, 3 1-byte EBML sizes, 2 * 8-byte uint max */ #define MAX_CUETRACKPOS_SIZE 22 /** per-cuepoint - 2 1-byte EBML IDs, 2 1-byte EBML sizes, 8-byte uint max */ #define MAX_CUEPOINT_SIZE(num_tracks) 12 + MAX_CUETRACKPOS_SIZE*num_tracks /*default audio frames per buffer*/ #define AUDBUFF_FRAMES 1152 extern int verbosity; /** Some utilities for * float and double conversion to/from int */ union mkv_union_intfloat32 { uint32_t i; float f; }; union mkv_union_intfloat64 { uint64_t i; double f; }; static uint64_t mkv_double2int(double f) { union mkv_union_intfloat64 v; v.f = f; return v.i; } /** get id size */ static int ebml_id_size(unsigned int id) { int bytes = 4, mask = 0x10; while (!(id & (mask << ((bytes - 1) * 8))) && bytes > 0) { mask <<= 1; bytes--; } return bytes; } /** write an id */ static void mkv_put_ebml_id(mkv_context_t *mkv_ctx, unsigned int id) { int i = ebml_id_size(id); while (i--) io_write_w8(mkv_ctx->writer, id >> (i*8)); } /** * Write an EBML size meaning "unknown size". * * @param bytes The number of bytes the size should occupy (maximum: 8). */ static void mkv_put_ebml_size_unknown(mkv_context_t *mkv_ctx, int bytes) { if(bytes <= 8) //max is 64 bits { io_write_w8(mkv_ctx->writer, 0x1ff >> bytes); while (--bytes) io_write_w8(mkv_ctx->writer, 0xff); } else fprintf(stderr, "mkv_ctx: bad unknown size (%i > 8) bytes)\n", bytes); } /** * Calculate how many bytes are needed to represent a given number in EBML. */ static int ebml_num_size(uint64_t num) { int bytes = 1; while ((num+1) >> bytes*7) bytes++; return bytes; } /** * Write a number in EBML variable length format. * * @param bytes The number of bytes that need to be used to write the number. * If zero, any number of bytes can be used. */ static void mkv_put_ebml_num(mkv_context_t *mkv_ctx, uint64_t num, int bytes) { int i, needed_bytes = ebml_num_size(num); // sizes larger than this are currently undefined in EBML if(num >= (1ULL<<56)-1) { fprintf(stderr, "ENCODER: (matroska) ebml number: %" PRIu64 "\n", num); return; } if (bytes == 0) // don't care how many bytes are used, so use the min bytes = needed_bytes; // the bytes needed to write the given size would exceed the bytes // that we need to use, so write unknown size. This shouldn't happen. if(bytes < needed_bytes) { fprintf(stderr, "ENCODER: (matroska) bad requested size for ebml number: %" PRIu64 " (%i < %i)\n", num, bytes, needed_bytes); return; } num |= 1ULL << bytes*7; for (i = bytes - 1; i >= 0; i--) io_write_w8(mkv_ctx->writer, num >> i*8); } static void mkv_put_ebml_uint(mkv_context_t *mkv_ctx, unsigned int elementid, uint64_t val) { int i, bytes = 1; uint64_t tmp = val; while (tmp>>=8) bytes++; mkv_put_ebml_id(mkv_ctx, elementid); mkv_put_ebml_num(mkv_ctx, bytes, 0); for (i = bytes - 1; i >= 0; i--) io_write_w8(mkv_ctx->writer, val >> i*8); } static void mkv_put_ebml_float(mkv_context_t *mkv_ctx, unsigned int elementid, double val) { mkv_put_ebml_id(mkv_ctx, elementid); mkv_put_ebml_num(mkv_ctx, 8, 0); io_write_wb64(mkv_ctx->writer, mkv_double2int(val)); } static void mkv_put_ebml_binary(mkv_context_t *mkv_ctx, unsigned int elementid, void *buf, int size) { mkv_put_ebml_id(mkv_ctx, elementid); mkv_put_ebml_num(mkv_ctx, size, 0); io_write_buf(mkv_ctx->writer, buf, size); } static void mkv_put_ebml_string(mkv_context_t *mkv_ctx, unsigned int elementid, char *str) { mkv_put_ebml_binary(mkv_ctx, elementid, str, strlen(str)); } /** * Write a void element of a given size. Useful for reserving space in * the file to be written to later. * * @param size The number of bytes to reserve, which must be at least 2. */ static void mkv_put_ebml_void(mkv_context_t *mkv_ctx, uint64_t size) { int64_t currentpos = io_get_offset(mkv_ctx->writer); if(size < 2) { fprintf(stderr, "ENCODER: (matroska) wrong void size %" PRIu64 " < 2", size); } mkv_put_ebml_id(mkv_ctx, EBML_ID_VOID); // we need to subtract the length needed to store the size from the // size we need to reserve so 2 cases, we use 8 bytes to store the // size if possible, 1 byte otherwise if (size < 10) mkv_put_ebml_num(mkv_ctx, size-1, 0); else mkv_put_ebml_num(mkv_ctx, size-9, 8); while(io_get_offset(mkv_ctx->writer) < currentpos + size) io_write_w8(mkv_ctx->writer, 0); } static ebml_master_t mkv_start_ebml_master(mkv_context_t *mkv_ctx, unsigned int elementid, uint64_t expectedsize) { //if 0 reserve max (8 bytes) int bytes = expectedsize ? ebml_num_size(expectedsize) : 8; mkv_put_ebml_id(mkv_ctx, elementid); mkv_put_ebml_size_unknown(mkv_ctx, bytes); return (ebml_master_t){ io_get_offset(mkv_ctx->writer), bytes }; } static void mkv_end_ebml_master(mkv_context_t *mkv_ctx, ebml_master_t master) { int64_t pos = io_get_offset(mkv_ctx->writer); if (io_seek(mkv_ctx->writer, master.pos - master.sizebytes) < 0) return; mkv_put_ebml_num(mkv_ctx, pos - master.pos, master.sizebytes); io_seek(mkv_ctx->writer, pos); } //static void mkv_put_xiph_size(mkv_context_t* mkv_ctx, int size) //{ // int i; // for (i = 0; i < size / 255; i++) // io_write_w8(mkv_ctx->writer, 255); // io_write_w8(mkv_ctx->writer, size % 255); //} /** * Initialize a mkv_seekhead element to be ready to index level 1 Matroska * elements. If a maximum number of elements is specified, enough space * will be reserved at the current file location to write a seek head of * that size. * * @param segment_offset The absolute offset to the position in the file * where the segment begins. * @param numelements The maximum number of elements that will be indexed * by this seek head, 0 if unlimited. */ static mkv_seekhead_t *mkv_start_seekhead(mkv_context_t *mkv_ctx, int64_t segment_offset, int numelements) { mkv_seekhead_t *new_seekhead = calloc(1, sizeof(mkv_seekhead_t)); if (new_seekhead == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_start_seekhead): %s\n", strerror(errno)); exit(-1); } new_seekhead->segment_offset = segment_offset; if (numelements > 0) { new_seekhead->filepos = io_get_offset(mkv_ctx->writer); /* * 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID * and size, and 3 bytes to guarantee that an EBML void element * will fit afterwards */ new_seekhead->reserved_size = numelements * MAX_SEEKENTRY_SIZE + 13; new_seekhead->max_entries = numelements; mkv_put_ebml_void(mkv_ctx, new_seekhead->reserved_size); } return new_seekhead; } static int mkv_add_seekhead_entry(mkv_seekhead_t *seekhead, unsigned int elementid, uint64_t filepos) { mkv_seekhead_entry_t *entries = seekhead->entries; fprintf(stderr,"ENCODER: (matroska) add seekhead entry %i (max %i)\n", seekhead->num_entries, seekhead->max_entries); /* don't store more elements than we reserved space for*/ if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries) return -1; entries = realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry_t)); if (entries == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_seekhead_entry): %s\n", strerror(errno)); exit(-1); } entries[seekhead->num_entries].elementid = elementid; entries[seekhead->num_entries].segmentpos = filepos - seekhead->segment_offset; seekhead->num_entries++; seekhead->entries = entries; return 0; } /** * Write the seek head to the file and free it. If a maximum number of * elements was specified to mkv_start_seekhead(), the seek head will * be written at the location reserved for it. Otherwise, it is written * at the current location in the file. * * @return The file offset where the seekhead was written, * -1 if an error occurred. */ static int64_t mkv_write_seekhead(mkv_context_t* mkv_ctx, mkv_seekhead_t *seekhead) { ebml_master_t metaseek, seekentry; int64_t currentpos; int i; currentpos = io_get_offset(mkv_ctx->writer); if (seekhead->reserved_size > 0) { if (io_seek(mkv_ctx->writer, seekhead->filepos) < 0) { fprintf(stderr, "ENCODER: (matroska) failed to write seekhead at pos %" PRIu64 "\n", seekhead->filepos); currentpos = -1; goto fail; } } metaseek = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEEKHEAD, seekhead->reserved_size); for (i = 0; i < seekhead->num_entries; i++) { mkv_seekhead_entry_t *entry = &seekhead->entries[i]; seekentry = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEEKENTRY, MAX_SEEKENTRY_SIZE); mkv_put_ebml_id(mkv_ctx, MATROSKA_ID_SEEKID); mkv_put_ebml_num(mkv_ctx, ebml_id_size(entry->elementid), 0); mkv_put_ebml_id(mkv_ctx, entry->elementid); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_SEEKPOSITION, entry->segmentpos); mkv_end_ebml_master(mkv_ctx, seekentry); } mkv_end_ebml_master(mkv_ctx, metaseek); if (seekhead->reserved_size > 0) { uint64_t remaining = seekhead->filepos + seekhead->reserved_size - io_get_offset(mkv_ctx->writer); mkv_put_ebml_void(mkv_ctx, remaining); io_seek(mkv_ctx->writer, currentpos); currentpos = seekhead->filepos; } fail: free(seekhead->entries); free(seekhead); return currentpos; } static mkv_cues_t *mkv_start_cues(int64_t segment_offset) { mkv_cues_t *cues = calloc(1, sizeof(mkv_cues_t)); if (cues == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_start_cues): %s\n", strerror(errno)); exit(-1); } cues->segment_offset = segment_offset; return cues; } static int mkv_add_cuepoint(mkv_cues_t *cues, int stream, int64_t ts, int64_t cluster_pos) { mkv_cuepoint_t *entries = cues->entries; if (ts < 0) return 0; entries = realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint_t)); if (entries == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_cuepoint): %s\n", strerror(errno)); exit(-1); } entries[cues->num_entries].pts = ts; entries[cues->num_entries].tracknum = stream + 1; entries[cues->num_entries].cluster_pos = cluster_pos - cues->segment_offset; cues->num_entries++; cues->entries = entries; return 0; } static int64_t mkv_write_cues(mkv_context_t *mkv_ctx, mkv_cues_t *cues, int num_tracks) { ebml_master_t cues_element; int64_t currentpos; int i, j; currentpos = io_get_offset(mkv_ctx->writer); cues_element = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CUES, 0); for (i = 0; i < cues->num_entries; i++) { ebml_master_t cuepoint, track_positions; mkv_cuepoint_t *entry = &cues->entries[i]; uint64_t pts = entry->pts; cuepoint = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_POINTENTRY, MAX_CUEPOINT_SIZE(num_tracks)); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUETIME, pts); // put all the entries from different tracks that have the exact same // timestamp into the same CuePoint for (j = 0; j < cues->num_entries - i && entry[j].pts == pts; j++) { track_positions = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CUETRACKPOSITION, MAX_CUETRACKPOS_SIZE); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUETRACK , entry[j].tracknum ); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CUECLUSTERPOSITION, entry[j].cluster_pos); mkv_end_ebml_master(mkv_ctx, track_positions); } i += j - 1; mkv_end_ebml_master(mkv_ctx, cuepoint); } mkv_end_ebml_master(mkv_ctx, cues_element); return currentpos; } static void mkv_write_codecprivate(mkv_context_t *mkv_ctx, stream_io_t *stream) { if (stream->extra_data_size && stream->extra_data != NULL) mkv_put_ebml_binary(mkv_ctx, MATROSKA_ID_CODECPRIVATE, stream->extra_data, stream->extra_data_size); } static void mkv_write_trackdefaultduration(mkv_context_t *mkv_ctx, stream_io_t *stream) { if(stream->type == STREAM_TYPE_VIDEO) { mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKDEFAULTDURATION, floor(1E9/stream->fps)); } } static int mkv_write_tracks(mkv_context_t *mkv_ctx) { ebml_master_t tracks; int i, ret; ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_TRACKS, io_get_offset(mkv_ctx->writer)); if (ret < 0) return ret; tracks = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKS, 0); for (i = 0; i < mkv_ctx->stream_list_size; i++) { stream_io_t *stream = get_stream(mkv_ctx->stream_list, i); ebml_master_t subinfo, track; track = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKENTRY, 0); mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKNUMBER , i + 1); mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKUID , i + 1); mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_TRACKFLAGLACING , 0); // no lacing (yet) mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKFLAGDEFAULT, 1); char* mkv_codec_name; if(stream->type == STREAM_TYPE_VIDEO) { int codec_index = get_video_codec_list_index(stream->codec_id); if(codec_index < 0) { fprintf(stderr, "ENCODER: (matroska) bad video codec index for id:0x%x\n",stream->codec_id); return -1; } mkv_codec_name = (char *) encoder_get_video_mkv_codec(codec_index); } else { int codec_index = get_audio_codec_list_index(stream->codec_id); if(codec_index < 0) { fprintf(stderr, "ENCODER: (matroska) bad audio codec index for id:0x%x\n",stream->codec_id); return -1; } mkv_codec_name = (char *) encoder_get_audio_mkv_codec(codec_index); } mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_CODECID, mkv_codec_name); if (mkv_ctx->mode == ENCODER_MUX_WEBM && !(stream->codec_id == AV_CODEC_ID_VP8 || stream->codec_id == AV_CODEC_ID_VORBIS)) { fprintf(stderr, "ENCODER: (matroska) Only VP8 video and Vorbis audio are supported for WebM.\n"); return -2; } switch (stream->type) { case STREAM_TYPE_VIDEO: mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO); subinfo = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKVIDEO, 0); // XXX: interlace flag? mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_VIDEOPIXELWIDTH , stream->width); mkv_put_ebml_uint (mkv_ctx, MATROSKA_ID_VIDEOPIXELHEIGHT, stream->height); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYWIDTH , stream->width); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYHEIGHT, stream->height); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_VIDEODISPLAYUNIT, 3); mkv_end_ebml_master(mkv_ctx, subinfo); break; case STREAM_TYPE_AUDIO: mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_AUDIO); //no mkv-specific ID, use ACM mode //put_ebml_string(pb, MATROSKA_ID_CODECID, "A_MS/ACM"); subinfo = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_TRACKAUDIO, 0); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_AUDIOCHANNELS, stream->a_chans); mkv_put_ebml_float(mkv_ctx, MATROSKA_ID_AUDIOSAMPLINGFREQ, stream->a_rate); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_AUDIOBITDEPTH, stream->a_bits); mkv_end_ebml_master(mkv_ctx, subinfo); break; default: fprintf(stderr, "ENCODER: (matroska) Only audio and video are supported by the Matroska muxer.\n"); break; } mkv_write_codecprivate(mkv_ctx, stream); mkv_write_trackdefaultduration(mkv_ctx, stream); mkv_end_ebml_master(mkv_ctx, track); } mkv_put_ebml_void(mkv_ctx, 200); // add some extra space mkv_end_ebml_master(mkv_ctx, tracks); return 0; } int mkv_write_header(mkv_context_t *mkv_ctx) { ebml_master_t ebml_header, segment_info; int ret; ebml_header = mkv_start_ebml_master(mkv_ctx, EBML_ID_HEADER, 0); mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLVERSION , 1); mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLREADVERSION , 1); mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLMAXIDLENGTH , 4); mkv_put_ebml_uint (mkv_ctx, EBML_ID_EBMLMAXSIZELENGTH , 8); if (mkv_ctx->mode == ENCODER_MUX_WEBM) mkv_put_ebml_string (mkv_ctx, EBML_ID_DOCTYPE , "webm"); else mkv_put_ebml_string (mkv_ctx, EBML_ID_DOCTYPE , "matroska"); mkv_put_ebml_uint (mkv_ctx, EBML_ID_DOCTYPEVERSION , 2); mkv_put_ebml_uint (mkv_ctx, EBML_ID_DOCTYPEREADVERSION , 2); mkv_end_ebml_master(mkv_ctx, ebml_header); mkv_ctx->segment = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_SEGMENT, 0); mkv_ctx->segment_offset = io_get_offset(mkv_ctx->writer); /* * we write 2 seek heads - one at the end of the file to point to each * cluster, and one at the beginning to point to all other level one * elements (including the seek head at the end of the file), which * isn't more than 10 elements if we only write one of each other * currently defined level 1 element */ mkv_ctx->main_seekhead = mkv_start_seekhead(mkv_ctx, mkv_ctx->segment_offset, 10); if (!mkv_ctx->main_seekhead) { fprintf(stderr,"ENCODER: (matroska) couldn't allocate seekhead\n"); return -1; } ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_INFO, io_get_offset(mkv_ctx->writer)); if (ret < 0) return ret; segment_info = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_INFO, 0); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_TIMECODESCALE, mkv_ctx->timescale); mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_MUXINGAPP , "Guvcview Muxer-2014.04"); mkv_put_ebml_string(mkv_ctx, MATROSKA_ID_WRITINGAPP, "Guvcview"); int32_t seg_uid[4] = {0,0,0,0}; /*generate seg uid - 16 byte random int*/ #ifdef HAS_GSL /*random generator setup*/ gsl_rng_env_setup(); const gsl_rng_type *T = gsl_rng_default; gsl_rng *r = gsl_rng_alloc (T); seg_uid[0] = INT_MIN + (int32_t) lround( INT_MAX * gsl_rng_uniform (r)); seg_uid[1] = INT_MIN + (int32_t) lround( INT_MAX * gsl_rng_uniform (r)); seg_uid[2] = INT_MIN + (int32_t) lround( INT_MAX * gsl_rng_uniform (r)); seg_uid[3] = INT_MIN + (int32_t) lround( INT_MAX * gsl_rng_uniform (r)); /*free the random seed generator*/ gsl_rng_free (r); #else time_t current_time = time(NULL); if(current_time != (time_t) -1) { struct tm *btime = localtime (¤t_time); seg_uid[0] = btime->tm_year + 1900; //year seg_uid[1] = ((btime->tm_mon + 1) << 16) + btime->tm_mday; //month + day seg_uid[2] = (btime->tm_hour << 16) + btime->tm_min; //hour + min seg_uid[3] = btime->tm_sec; //sec } #endif mkv_put_ebml_binary(mkv_ctx, MATROSKA_ID_SEGMENTUID, seg_uid, 16); /* reserve space for the duration*/ mkv_ctx->duration = 0; mkv_ctx->duration_offset = io_get_offset(mkv_ctx->writer); mkv_put_ebml_void(mkv_ctx, 11); /* assumes double-precision float to be written*/ mkv_end_ebml_master(mkv_ctx, segment_info); ret = mkv_write_tracks(mkv_ctx); if (ret < 0) return ret; mkv_ctx->cues = mkv_start_cues(mkv_ctx->segment_offset); if (mkv_ctx->cues == NULL) { fprintf(stderr,"ENCODER: (matroska) couldn't allocate cues\n"); return -1; } io_flush_buffer(mkv_ctx->writer); return 0; } static int mkv_processh264_nalu(uint8_t *data, int size) { /*replace 00 00 00 01 (nalu marker) with nalu size*/ int last_nalu = 0; /*marks last nalu in buffer*/ int tot_nal = 0; uint8_t *nal_start = data; uint8_t *sp = data; uint8_t *ep = NULL; uint32_t nal_size = 0; while (!last_nalu) { nal_size = 0; /*search for NALU marker*/ for(sp = nal_start; sp < data + size - 4; ++sp) { if(sp[0] == 0x00 && sp[1] == 0x00 && sp[2] == 0x00 && sp[3] == 0x01) { nal_start = sp + 4; break; } } /*search for end of NALU*/ for(ep = nal_start; ep < data + size - 4; ++ep) { if(ep[0] == 0x00 && ep[1] == 0x00 && ep[2] == 0x00 && ep[3] == 0x01) { nal_size = ep - nal_start; nal_start = ep;/*reset for next NALU*/ break; } } if(!nal_size) { last_nalu = 1; nal_size = data + size - nal_start; } sp[0] = (nal_size >> 24) & 0x000000FF; sp[1] = (nal_size >> 16) & 0x000000FF; sp[2] = (nal_size >> 8) & 0x000000FF; sp[3] = (nal_size) & 0x000000FF; tot_nal++; } return tot_nal; } static int mkv_blockgroup_size(int pkt_size) { int size = pkt_size + 4; size += ebml_num_size(size); size += 2; // EBML ID for block and block duration size += 8; // max size of block duration size += ebml_num_size(size); size += 1; // blockgroup EBML ID return size; } static void mkv_write_block(mkv_context_t* mkv_ctx, unsigned int blockid, int stream_index, uint8_t *data, int size, uint64_t pts, int flags) { stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); if(stream->codec_id == AV_CODEC_ID_H264 && stream->h264_process) mkv_processh264_nalu(data, size); uint8_t block_flags = 0x00; if(!!(flags & AV_PKT_FLAG_KEY)) //for simple block block_flags |= 0x80; mkv_put_ebml_id(mkv_ctx, blockid); mkv_put_ebml_num(mkv_ctx, size+4, 0); io_write_w8(mkv_ctx->writer, 0x80 | (stream_index + 1));// this assumes stream_index is less than 126 io_write_wb16(mkv_ctx->writer, pts - mkv_ctx->cluster_pts); //pts and cluster_pts are scaled io_write_w8(mkv_ctx->writer, block_flags); io_write_buf(mkv_ctx->writer, data, size); } static int mkv_write_packet_internal(mkv_context_t* mkv_ctx, int stream_index, uint8_t *data, int size, int duration, uint64_t pts, int flags) { int keyframe = !!(flags & AV_PKT_FLAG_KEY); int use_simpleblock = 1; uint64_t ts = pts / mkv_ctx->timescale; //scale the time stamp stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); stream->packet_count++; if (!mkv_ctx->cluster_pos) { mkv_ctx->cluster_pos = io_get_offset(mkv_ctx->writer); mkv_ctx->cluster = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_CLUSTER, 0); mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_CLUSTERTIMECODE, MAX(0, ts)); mkv_ctx->cluster_pts = MAX(0, ts); } if(use_simpleblock) mkv_write_block(mkv_ctx, MATROSKA_ID_SIMPLEBLOCK, stream_index, data, size, ts, flags); else { ebml_master_t blockgroup = mkv_start_ebml_master(mkv_ctx, MATROSKA_ID_BLOCKGROUP, mkv_blockgroup_size(size)); mkv_write_block(mkv_ctx, MATROSKA_ID_BLOCK, stream_index, data, size, ts, flags); if(duration) mkv_put_ebml_uint(mkv_ctx, MATROSKA_ID_BLOCKDURATION, duration); mkv_end_ebml_master(mkv_ctx, blockgroup); } if (get_stream(mkv_ctx->stream_list, stream_index)->type == STREAM_TYPE_VIDEO && keyframe) { //fprintf(stderr,"mkv_ctx: add a cue point\n"); int ret = mkv_add_cuepoint(mkv_ctx->cues, stream_index, ts, mkv_ctx->cluster_pos); if (ret < 0) return ret; } mkv_ctx->duration = MAX(mkv_ctx->duration, ts /*+ duration*/); return 0; } static int mkv_cache_packet(mkv_context_t* mkv_ctx, int stream_index, uint8_t *data, int size, int duration, uint64_t pts, int flags) { if(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size > 0) { if(verbosity > 0) fprintf(stderr,"ENCODER: (matroska) packet buffer [%i] is in use: flushing cached data\n", mkv_ctx->pkt_buffer_write_index); int ret = mkv_write_packet_internal(mkv_ctx, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].stream_index, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].duration, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].pts, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].flags); mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size = 0; /*advance read index to next buffer*/ mkv_ctx->pkt_buffer_read_index = mkv_ctx->pkt_buffer_write_index; NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); if (ret < 0) { fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); return ret; } } if(size > mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].max_size) { mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].max_size = size; if(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data == NULL) mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data = calloc(size, sizeof(uint8_t)); else mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data = realloc( mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, size * sizeof(uint8_t)); } if (mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_cache_packet): %s\n", strerror(errno)); exit(-1); } if(verbosity > 3) printf("ENCODER: (matroska) caching packet [%i]\n", mkv_ctx->pkt_buffer_write_index); memcpy(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data, data, size); mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].data_size = size; mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].duration = duration; mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].pts = pts; mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].flags = flags; mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_write_index].stream_index = stream_index; NEXT_IND(mkv_ctx->pkt_buffer_write_index, mkv_ctx->pkt_buffer_list_size); return 0; } /** public interface */ int mkv_write_packet(mkv_context_t* mkv_ctx, int stream_index, uint8_t *data, int size, int duration, uint64_t pts, int flags) { int ret, keyframe = !!(flags & AV_PKT_FLAG_KEY); uint64_t ts = pts; ts -= mkv_ctx->first_pts; int cluster_size = io_get_offset(mkv_ctx->writer) - mkv_ctx->cluster_pos; stream_io_t *stream = get_stream(mkv_ctx->stream_list, stream_index); /* check if we have audio packets cached and write them up to video pts*/ if (stream->type == STREAM_TYPE_VIDEO && mkv_ctx->pkt_buffer_list_size > 0 && mkv_ctx->pkt_buffer_list != NULL) { while(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts < ts && mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size > 0) { if(verbosity > 3) printf("ENCODER: (matroska) writing cached packet[%i] of %i\n", mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); ret = mkv_write_packet_internal(mkv_ctx, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].stream_index, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].duration, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].flags); mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size = 0; /*advance read index*/ NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); if (ret < 0) { fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); return ret; } } } /* * start a new cluster every 6 MB and at least 5 sec, * or on a keyframe, * or every 3 MB if it is a video packet */ if (mkv_ctx->cluster_pos && ((cluster_size > 6*1024*1024 && ts > mkv_ctx->cluster_pts + 5000) || (stream->type == STREAM_TYPE_VIDEO && keyframe) || (stream->type == STREAM_TYPE_VIDEO && cluster_size > 3*1024*1024))) { mkv_end_ebml_master(mkv_ctx, mkv_ctx->cluster); mkv_ctx->cluster_pos = 0; } /* * buffer audio packets to ensure the packet containing the video * timecode is contained in the same cluster */ if (stream->type == STREAM_TYPE_AUDIO) ret = mkv_cache_packet(mkv_ctx, stream_index, data, size, duration, ts, flags); else ret = mkv_write_packet_internal(mkv_ctx, stream_index, data, size, duration, ts, flags); return ret; } int mkv_close(mkv_context_t* mkv_ctx) { int64_t currentpos, cuespos; int ret; printf("ENCODER: (matroska) closing context\n"); /* check if we have audio packets cached and write them */ if (mkv_ctx->pkt_buffer_list_size > 0) { while(mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size > 0) { ret = mkv_write_packet_internal(mkv_ctx, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].stream_index, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].duration, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].pts, mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].flags); mkv_ctx->pkt_buffer_list[mkv_ctx->pkt_buffer_read_index].data_size = 0; /*advance read index*/ NEXT_IND(mkv_ctx->pkt_buffer_read_index, mkv_ctx->pkt_buffer_list_size); if (ret < 0) { fprintf(stderr, "ENCODER: (matroska) Could not write cached audio packet\n"); return ret; } } } printf("ENCODER: (matroska) closing cluster\n"); if(mkv_ctx->cluster_pos) mkv_end_ebml_master(mkv_ctx, mkv_ctx->cluster); if (mkv_ctx->cues->num_entries) { printf("ENCODER: (matroska)writing cues\n"); cuespos = mkv_write_cues(mkv_ctx, mkv_ctx->cues, mkv_ctx->stream_list_size); printf("ENCODER: (matroska)add seekhead\n"); ret = mkv_add_seekhead_entry(mkv_ctx->main_seekhead, MATROSKA_ID_CUES, cuespos); if (ret < 0) return ret; } printf("ENCODER: (matroska)write seekhead\n"); mkv_write_seekhead(mkv_ctx, mkv_ctx->main_seekhead); // update the duration fprintf(stderr,"ENCODER: (matroska) end duration = %" PRIu64 " (%f) \n", mkv_ctx->duration, (float) mkv_ctx->duration); currentpos = io_get_offset(mkv_ctx->writer); io_seek(mkv_ctx->writer, mkv_ctx->duration_offset); mkv_put_ebml_float(mkv_ctx, MATROSKA_ID_DURATION, (float) mkv_ctx->duration); io_seek(mkv_ctx->writer, currentpos); mkv_end_ebml_master(mkv_ctx, mkv_ctx->segment); av_freep(&mkv_ctx->cues->entries); av_freep(&mkv_ctx->cues); return 0; } mkv_context_t *mkv_create_context(const char* filename, int mode) { mkv_context_t *mkv_ctx = calloc(1, sizeof(mkv_context_t)); if (mkv_ctx == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_create_context): %s\n", strerror(errno)); exit(-1); } mkv_ctx->writer = io_create_writer(filename, 0); mkv_ctx->mode = mode; mkv_ctx->main_seekhead = NULL; mkv_ctx->cues = NULL; mkv_ctx->stream_list = NULL; mkv_ctx->timescale = 1000000; mkv_ctx->pkt_buffer_list = NULL; mkv_ctx->pkt_buffer_list_size = 0; mkv_ctx->pkt_buffer_read_index = 0; mkv_ctx->pkt_buffer_write_index = 0; return mkv_ctx; } void mkv_destroy_context(mkv_context_t *mkv_ctx) { io_destroy_writer(mkv_ctx->writer); destroy_stream_list(mkv_ctx->stream_list, &mkv_ctx->stream_list_size); /*free buffer list*/ if(mkv_ctx->pkt_buffer_list) { int i = 0; for(i=0; ipkt_buffer_list_size; ++i) { if(mkv_ctx->pkt_buffer_list[i].data) free(mkv_ctx->pkt_buffer_list[i].data); } free(mkv_ctx->pkt_buffer_list); } mkv_ctx->pkt_buffer_list = NULL; mkv_ctx->pkt_buffer_list_size = 0; } stream_io_t *mkv_add_video_stream(mkv_context_t *mkv_ctx, int32_t width, int32_t height, int32_t fps, int32_t fps_num, int32_t codec_id) { stream_io_t *stream = add_new_stream(&mkv_ctx->stream_list, &mkv_ctx->stream_list_size); stream->type = STREAM_TYPE_VIDEO; stream->width = width; stream->height = height; stream->codec_id = codec_id; /*we have delayed video frames so increase the cached audio*/ if(codec_id == AV_CODEC_ID_H264) mkv_ctx->pkt_buffer_list_size = 3 * PKT_BUFFER_DEF_SIZE; stream->fps = (double) fps/fps_num; stream->indexes = NULL; return stream; } stream_io_t *mkv_add_audio_stream(mkv_context_t *mkv_ctx, int32_t channels, int32_t rate, int32_t bits, int32_t mpgrate, int32_t codec_id, int32_t format) { stream_io_t *stream = add_new_stream(&mkv_ctx->stream_list, &mkv_ctx->stream_list_size); stream->type = STREAM_TYPE_AUDIO; stream->a_chans = channels; stream->a_rate = rate; stream->a_bits = bits; stream->mpgrate = mpgrate; stream->a_vbr = 0; stream->codec_id = codec_id; stream->a_fmt = format; /*aprox. 2 sec cache*/ if(!mkv_ctx->audio_frame_size) mkv_ctx->audio_frame_size = 1152; if(mkv_ctx->pkt_buffer_list_size == 0) mkv_ctx->pkt_buffer_list_size = 2 * (rate/mkv_ctx->audio_frame_size); else if(mkv_ctx->pkt_buffer_list_size == 3 * PKT_BUFFER_DEF_SIZE) /*H264*/ { if(3 * (rate/mkv_ctx->audio_frame_size) > mkv_ctx->pkt_buffer_list_size) mkv_ctx->pkt_buffer_list_size = 3 * (rate/mkv_ctx->audio_frame_size); } if(mkv_ctx->pkt_buffer_list == NULL) { mkv_ctx->pkt_buffer_write_index = 0; mkv_ctx->pkt_buffer_read_index = 0; mkv_ctx->pkt_buffer_list = calloc(mkv_ctx->pkt_buffer_list_size, sizeof(mkv_packet_buff_t)); if (mkv_ctx->pkt_buffer_list == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (mkv_add_audio_stream): %s\n", strerror(errno)); exit(-1); } int i = 0; for(i = 0; i < mkv_ctx->pkt_buffer_list_size; ++i) { mkv_ctx->pkt_buffer_list[i].max_size = 0; mkv_ctx->pkt_buffer_list[i].data_size = 0; mkv_ctx->pkt_buffer_list[i].data = NULL; } } stream->indexes = NULL; return stream; } guvcview-2.0.2+debian/gview_encoder/matroska.h000066400000000000000000000272161256377215300214250ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # This is a heavily modified version of the matroska interface from x264 # # Copyright (C) 2005 Mike Matsnev # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef MATROSKA_H #define MATROSKA_H #include #include #include "stream_io.h" #include "file_io.h" /* EBML version supported */ #define EBML_VERSION 1 /* top-level master-IDs */ #define EBML_ID_HEADER 0x1A45DFA3 /* IDs in the HEADER master */ #define EBML_ID_EBMLVERSION 0x4286 #define EBML_ID_EBMLREADVERSION 0x42F7 #define EBML_ID_EBMLMAXIDLENGTH 0x42F2 #define EBML_ID_EBMLMAXSIZELENGTH 0x42F3 #define EBML_ID_DOCTYPE 0x4282 #define EBML_ID_DOCTYPEVERSION 0x4287 #define EBML_ID_DOCTYPEREADVERSION 0x4285 /* general EBML types */ #define EBML_ID_VOID 0xEC #define EBML_ID_CRC32 0xBF /* * Matroska element IDs, max. 32 bits */ /* toplevel segment */ #define MATROSKA_ID_SEGMENT 0x18538067 /* Matroska top-level master IDs */ #define MATROSKA_ID_INFO 0x1549A966 #define MATROSKA_ID_TRACKS 0x1654AE6B #define MATROSKA_ID_CUES 0x1C53BB6B #define MATROSKA_ID_TAGS 0x1254C367 #define MATROSKA_ID_SEEKHEAD 0x114D9B74 #define MATROSKA_ID_ATTACHMENTS 0x1941A469 #define MATROSKA_ID_CLUSTER 0x1F43B675 #define MATROSKA_ID_CHAPTERS 0x1043A770 /* IDs in the info master */ #define MATROSKA_ID_TIMECODESCALE 0x2AD7B1 #define MATROSKA_ID_DURATION 0x4489 #define MATROSKA_ID_TITLE 0x7BA9 #define MATROSKA_ID_WRITINGAPP 0x5741 #define MATROSKA_ID_MUXINGAPP 0x4D80 #define MATROSKA_ID_DATEUTC 0x4461 #define MATROSKA_ID_SEGMENTUID 0x73A4 /* ID in the tracks master */ #define MATROSKA_ID_TRACKENTRY 0xAE /* IDs in the trackentry master */ #define MATROSKA_ID_TRACKNUMBER 0xD7 #define MATROSKA_ID_TRACKUID 0x73C5 #define MATROSKA_ID_TRACKTYPE 0x83 #define MATROSKA_ID_TRACKAUDIO 0xE1 #define MATROSKA_ID_TRACKVIDEO 0xE0 #define MATROSKA_ID_CODECID 0x86 #define MATROSKA_ID_CODECPRIVATE 0x63A2 #define MATROSKA_ID_CODECNAME 0x258688 #define MATROSKA_ID_CODECINFOURL 0x3B4040 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240 #define MATROSKA_ID_CODECDECODEALL 0xAA #define MATROSKA_ID_TRACKNAME 0x536E #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C #define MATROSKA_ID_TRACKFLAGENABLED 0xB9 #define MATROSKA_ID_TRACKFLAGDEFAULT 0x88 #define MATROSKA_ID_TRACKFLAGFORCED 0x55AA #define MATROSKA_ID_TRACKFLAGLACING 0x9C #define MATROSKA_ID_TRACKMINCACHE 0x6DE7 #define MATROSKA_ID_TRACKMAXCACHE 0x6DF8 #define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383 #define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80 #define MATROSKA_ID_TRACKCONTENTENCODING 0x6240 #define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F #define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE /* IDs in the trackvideo master */ #define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3 #define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0 #define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA #define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0 #define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA #define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA #define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB #define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC #define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD #define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2 #define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A #define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9 #define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3 #define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524 /* IDs in the trackaudio master */ #define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5 #define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5 #define MATROSKA_ID_AUDIOBITDEPTH 0x6264 #define MATROSKA_ID_AUDIOCHANNELS 0x9F /* IDs in the content encoding master */ #define MATROSKA_ID_ENCODINGORDER 0x5031 #define MATROSKA_ID_ENCODINGSCOPE 0x5032 #define MATROSKA_ID_ENCODINGTYPE 0x5033 #define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034 #define MATROSKA_ID_ENCODINGCOMPALGO 0x4254 #define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255 /* ID in the cues master */ #define MATROSKA_ID_POINTENTRY 0xBB /* IDs in the pointentry master */ #define MATROSKA_ID_CUETIME 0xB3 #define MATROSKA_ID_CUETRACKPOSITION 0xB7 /* IDs in the cuetrackposition master */ #define MATROSKA_ID_CUETRACK 0xF7 #define MATROSKA_ID_CUECLUSTERPOSITION 0xF1 #define MATROSKA_ID_CUEBLOCKNUMBER 0x5378 /* IDs in the tags master */ #define MATROSKA_ID_TAG 0x7373 #define MATROSKA_ID_SIMPLETAG 0x67C8 #define MATROSKA_ID_TAGNAME 0x45A3 #define MATROSKA_ID_TAGSTRING 0x4487 #define MATROSKA_ID_TAGLANG 0x447A #define MATROSKA_ID_TAGDEFAULT 0x44B4 #define MATROSKA_ID_TAGTARGETS 0x63C0 #define MATROSKA_ID_TAGTARGETS_TYPE 0x63CA #define MATROSKA_ID_TAGTARGETS_TYPEVALUE 0x68CA #define MATROSKA_ID_TAGTARGETS_TRACKUID 0x63C5 #define MATROSKA_ID_TAGTARGETS_CHAPTERUID 0x63C4 #define MATROSKA_ID_TAGTARGETS_ATTACHUID 0x63C6 /* IDs in the seekhead master */ #define MATROSKA_ID_SEEKENTRY 0x4DBB /* IDs in the seekpoint master */ #define MATROSKA_ID_SEEKID 0x53AB #define MATROSKA_ID_SEEKPOSITION 0x53AC /* IDs in the cluster master */ #define MATROSKA_ID_CLUSTERTIMECODE 0xE7 #define MATROSKA_ID_CLUSTERPOSITION 0xA7 #define MATROSKA_ID_CLUSTERPREVSIZE 0xAB #define MATROSKA_ID_BLOCKGROUP 0xA0 #define MATROSKA_ID_SIMPLEBLOCK 0xA3 /* IDs in the blockgroup master */ #define MATROSKA_ID_BLOCK 0xA1 #define MATROSKA_ID_BLOCKDURATION 0x9B #define MATROSKA_ID_BLOCKREFERENCE 0xFB /* IDs in the attachments master */ #define MATROSKA_ID_ATTACHEDFILE 0x61A7 #define MATROSKA_ID_FILEDESC 0x467E #define MATROSKA_ID_FILENAME 0x466E #define MATROSKA_ID_FILEMIMETYPE 0x4660 #define MATROSKA_ID_FILEDATA 0x465C #define MATROSKA_ID_FILEUID 0x46AE /* IDs in the chapters master */ #define MATROSKA_ID_EDITIONENTRY 0x45B9 #define MATROSKA_ID_CHAPTERATOM 0xB6 #define MATROSKA_ID_CHAPTERTIMESTART 0x91 #define MATROSKA_ID_CHAPTERTIMEEND 0x92 #define MATROSKA_ID_CHAPTERDISPLAY 0x80 #define MATROSKA_ID_CHAPSTRING 0x85 #define MATROSKA_ID_CHAPLANG 0x437C #define MATROSKA_ID_EDITIONUID 0x45BC #define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD #define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB #define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD #define MATROSKA_ID_CHAPTERUID 0x73C4 #define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98 #define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598 #define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3 /* track type*/ #define MATROSKA_TRACK_TYPE_NONE 0x0 #define MATROSKA_TRACK_TYPE_VIDEO 0x1 #define MATROSKA_TRACK_TYPE_AUDIO 0x2 #define MATROSKA_TRACK_TYPE_COMPLEX 0x3 #define MATROSKA_TRACK_TYPE_LOGO 0x10 #define MATROSKA_TRACK_TYPE_SUBTITLE 0x11 #define MATROSKA_TRACK_TYPE_CONTROL 0x20 /* typedef enum { MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0, MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1, MATROSKA_TRACK_ENCODING_COMP_LZO = 2, MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3, } MatroskaTrackEncodingCompAlgo; */ typedef struct ebml_master_t { int64_t pos; ///< absolute offset in the file where the master's elements start int sizebytes; ///< how many bytes were reserved for the size } ebml_master_t; typedef struct mkv_seekhead_entry_t { unsigned int elementid; uint64_t segmentpos; } mkv_seekhead_entry_t; typedef struct mkv_seekhead_t { int64_t filepos; int64_t segment_offset; ///< the file offset to the beginning of the segment int reserved_size; ///< -1 if appending to file int max_entries; mkv_seekhead_entry_t *entries; int num_entries; } mkv_seekhead_t; typedef struct mkv_cuepoint_t { uint64_t pts; int tracknum; int64_t cluster_pos; ///< file offset of the cluster containing the block } mkv_cuepoint_t; typedef struct mkv_cues_t { int64_t segment_offset; mkv_cuepoint_t *entries; int num_entries; } mkv_cues_t; typedef struct mkv_packet_buff_t { uint8_t *data; unsigned int data_size; unsigned int max_size; uint64_t pts; int duration; int flags; int stream_index; } mkv_packet_buff_t; typedef struct mkv_context_t { int mode; /*matroska or webm*/ io_writer_t *writer; ebml_master_t segment; int64_t segment_offset; ebml_master_t cluster; int64_t cluster_pos; ///< file offset of the current cluster int64_t cluster_pts; int64_t duration_offset; int64_t duration; mkv_seekhead_t *main_seekhead; mkv_cues_t *cues; uint64_t timescale; uint64_t first_pts; /*pts of first packet*/ /*stored audio packets list (ring buffer)*/ mkv_packet_buff_t *pkt_buffer_list; int pkt_buffer_list_size; int pkt_buffer_read_index; int pkt_buffer_write_index; int audio_frame_size; /*number of audio samples per buffer(frame)*/ stream_io_t *stream_list; int stream_list_size; } mkv_context_t; /** create a muxer context * mode : WEBM_FORMAT or mkv_ctx_FORMAT*/ mkv_context_t *mkv_create_context(const char* filename, int mode); /** add a video stream to the context */ stream_io_t *mkv_add_video_stream(mkv_context_t *mkv_ctx, int32_t width, int32_t height, int32_t fps, int32_t fps_num, int32_t codec_id); /** add a audio stream to the context */ stream_io_t *mkv_add_audio_stream(mkv_context_t *mkv_ctx, int32_t channels, int32_t rate, int32_t bits, int32_t mpgrate, int32_t codec_id, int32_t format); /** write the header*/ int mkv_write_header(mkv_context_t *mkv_ctx); int mkv_write_packet(mkv_context_t *mkv_ctx, int stream_index, uint8_t *data, int size, int duration, uint64_t pts, int flags); /** finalize file operations*/ int mkv_close(mkv_context_t *mkv_ctx); /** destroy the muxer context (clean up)*/ void mkv_destroy_context(mkv_context_t *mkv_ctx); #endif guvcview-2.0.2+debian/gview_encoder/muxer.c000066400000000000000000000313221256377215300207300ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Encoder library # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gviewencoder.h" #include "encoder.h" #include "stream_io.h" #include "matroska.h" #include "avi.h" #include "gview.h" extern int verbosity; static mkv_context_t *mkv_ctx = NULL; static avi_context_t *avi_ctx = NULL; static stream_io_t *video_stream = NULL; static stream_io_t *audio_stream = NULL; /*file mutex*/ static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; #define __PMUTEX &mutex /* * mux a video frame * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null; * * returns: error code */ int encoder_write_video_data(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx); encoder_video_context_t *enc_video_ctx = encoder_ctx->enc_video_ctx; assert(enc_video_ctx); if(enc_video_ctx->outbuf_coded_size <= 0) return -1; enc_video_ctx->framecount++; int ret =0; int block_align = 1; encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) enc_video_ctx->codec_data; if(video_codec_data) block_align = video_codec_data->codec_context->block_align; __LOCK_MUTEX( __PMUTEX ); switch (encoder_ctx->muxer_id) { case ENCODER_MUX_AVI: ret = avi_write_packet( avi_ctx, 0, enc_video_ctx->outbuf, enc_video_ctx->outbuf_coded_size, enc_video_ctx->dts, block_align, enc_video_ctx->flags); break; case ENCODER_MUX_MKV: case ENCODER_MUX_WEBM: ret = mkv_write_packet( mkv_ctx, 0, enc_video_ctx->outbuf, enc_video_ctx->outbuf_coded_size, enc_video_ctx->duration, enc_video_ctx->pts, enc_video_ctx->flags); break; default: break; } __UNLOCK_MUTEX( __PMUTEX ); return (ret); } /* * mux a audio frame * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null; * * returns: error code */ int encoder_write_audio_data(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); encoder_audio_context_t *enc_audio_ctx = encoder_ctx->enc_audio_ctx; if(!enc_audio_ctx || encoder_ctx->audio_channels <= 0) return -1; if(verbosity > 3) printf("ENCODER: writing %i bytes of audio data\n", enc_audio_ctx->outbuf_coded_size); if(enc_audio_ctx->outbuf_coded_size <= 0) return -1; int ret =0; int block_align = 1; encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) enc_audio_ctx->codec_data; if(audio_codec_data) block_align = audio_codec_data->codec_context->block_align; __LOCK_MUTEX( __PMUTEX ); switch (encoder_ctx->muxer_id) { case ENCODER_MUX_AVI: ret = avi_write_packet( avi_ctx, 1, enc_audio_ctx->outbuf, enc_audio_ctx->outbuf_coded_size, enc_audio_ctx->dts, block_align, enc_audio_ctx->flags); break; case ENCODER_MUX_MKV: case ENCODER_MUX_WEBM: ret = mkv_write_packet( mkv_ctx, 1, enc_audio_ctx->outbuf, enc_audio_ctx->outbuf_coded_size, enc_audio_ctx->duration, enc_audio_ctx->pts, enc_audio_ctx->flags); break; default: break; } __UNLOCK_MUTEX( __PMUTEX ); return (ret); } /* * initialization of the file muxer * args: * encoder_ctx - pointer to encoder context * filename - video filename * * asserts: * encoder_ctx is not null * encoder_ctx->enc_video_ctx is not null * * returns: none */ void encoder_muxer_init(encoder_context_t *encoder_ctx, const char *filename) { /*assertions*/ assert(encoder_ctx != NULL); assert(encoder_ctx->enc_video_ctx != NULL); encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; int video_codec_id = AV_CODEC_ID_NONE; if(encoder_ctx->video_codec_ind == 0) /*no codec_context*/ { switch(encoder_ctx->input_format) { case V4L2_PIX_FMT_H264: video_codec_id = AV_CODEC_ID_H264; break; } } else if(video_codec_data) { video_codec_id = video_codec_data->codec_context->codec_id; } if(verbosity > 1) printf("ENCODER: initializing muxer(%i)\n", encoder_ctx->muxer_id); switch (encoder_ctx->muxer_id) { case ENCODER_MUX_AVI: if(avi_ctx != NULL) { avi_destroy_context(avi_ctx); avi_ctx = NULL; } avi_ctx = avi_create_context(filename); /*add video stream*/ video_stream = avi_add_video_stream( avi_ctx, encoder_ctx->video_width, encoder_ctx->video_height, encoder_ctx->fps_den, encoder_ctx->fps_num, video_codec_id); if(video_codec_id == AV_CODEC_ID_THEORA && video_codec_data) { video_stream->extra_data = (uint8_t *) video_codec_data->codec_context->extradata; video_stream->extra_data_size = video_codec_data->codec_context->extradata_size; } /*add audio stream*/ if(encoder_ctx->enc_audio_ctx != NULL && encoder_ctx->audio_channels > 0) { encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; if(audio_codec_data) { int acodec_ind = get_audio_codec_list_index(audio_codec_data->codec_context->codec_id); /*sample size - only used for PCM*/ int32_t a_bits = encoder_get_audio_bits(acodec_ind); /*bit rate (compressed formats)*/ int32_t b_rate = encoder_get_audio_bit_rate(acodec_ind); audio_stream = avi_add_audio_stream( avi_ctx, encoder_ctx->audio_channels, encoder_ctx->audio_samprate, a_bits, b_rate, audio_codec_data->codec_context->codec_id, encoder_ctx->enc_audio_ctx->avi_4cc); if(audio_codec_data->codec_context->codec_id == AV_CODEC_ID_VORBIS) { audio_stream->extra_data = (uint8_t *) audio_codec_data->codec_context->extradata; audio_stream->extra_data_size = audio_codec_data->codec_context->extradata_size; } } } /* add first riff header */ avi_add_new_riff(avi_ctx); break; default: case ENCODER_MUX_MKV: case ENCODER_MUX_WEBM: if(mkv_ctx != NULL) { mkv_destroy_context(mkv_ctx); mkv_ctx = NULL; } mkv_ctx = mkv_create_context(filename, encoder_ctx->muxer_id); /*add video stream*/ video_stream = mkv_add_video_stream( mkv_ctx, encoder_ctx->video_width, encoder_ctx->video_height, encoder_ctx->fps_den, encoder_ctx->fps_num, video_codec_id); video_stream->extra_data_size = encoder_set_video_mkvCodecPriv(encoder_ctx); if(video_stream->extra_data_size > 0) { video_stream->extra_data = (uint8_t *) encoder_get_video_mkvCodecPriv(encoder_ctx->video_codec_ind); if(encoder_ctx->input_format == V4L2_PIX_FMT_H264) video_stream->h264_process = 1; //we need to process NALU marker } /*add audio stream*/ if(encoder_ctx->enc_audio_ctx != NULL && encoder_ctx->audio_channels > 0) { encoder_codec_data_t *audio_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_audio_ctx->codec_data; if(audio_codec_data) { mkv_ctx->audio_frame_size = audio_codec_data->codec_context->frame_size; /*sample size - only used for PCM*/ int32_t a_bits = encoder_get_audio_bits(encoder_ctx->audio_codec_ind); /*bit rate (compressed formats)*/ int32_t b_rate = encoder_get_audio_bit_rate(encoder_ctx->audio_codec_ind); audio_stream = mkv_add_audio_stream( mkv_ctx, encoder_ctx->audio_channels, encoder_ctx->audio_samprate, a_bits, b_rate, audio_codec_data->codec_context->codec_id, encoder_ctx->enc_audio_ctx->avi_4cc); audio_stream->extra_data_size = encoder_set_audio_mkvCodecPriv(encoder_ctx); if(audio_stream->extra_data_size > 0) audio_stream->extra_data = encoder_get_audio_mkvCodecPriv(encoder_ctx->audio_codec_ind); } } /* write the file header */ mkv_write_header(mkv_ctx); break; } } /* * close the file muxer * args: * encoder_ctx - pointer to encoder context * * asserts: * none * * returns: none */ void encoder_muxer_close(encoder_context_t *encoder_ctx) { switch (encoder_ctx->muxer_id) { case ENCODER_MUX_AVI: if (avi_ctx) { /*last frame pts*/ float tottime = (float) ((int64_t) (encoder_ctx->enc_video_ctx->pts) / 1000000); // convert to miliseconds if (verbosity > 0) printf("ENCODER: (avi) time = %f\n", tottime); if (tottime > 0) { /*try to find the real frame rate*/ avi_ctx->fps = (double) (encoder_ctx->enc_video_ctx->framecount * 1000) / tottime; } if (verbosity > 0) printf("ENCODER: (avi) %"PRId64" frames in %f ms [ %f fps]\n", encoder_ctx->enc_video_ctx->framecount, tottime, avi_ctx->fps); //close sound ?? avi_close(avi_ctx); avi_destroy_context(avi_ctx); avi_ctx = NULL; } break; default: case ENCODER_MUX_MKV: case ENCODER_MUX_WEBM: if(mkv_ctx != NULL) { mkv_close(mkv_ctx); mkv_destroy_context(mkv_ctx); mkv_ctx = NULL; } break; } } /* * function to determine if enought free space is available * args: * treshold: limit treshold in Kbytes (min. free space) * * asserts: * none * * returns: 1 if still enough free space left on disk * 0 otherwise */ int encoder_disk_supervisor(int treshold, const char *path) { /* * treshold: * 51200 = 50Mb * 102400 = 100Mb * 358400 = 300Mb * 512000 = 500Mb */ int percent = 0; uint64_t free_kbytes=0; uint64_t total_kbytes=0; struct statfs buf; statfs(path, &buf); total_kbytes= buf.f_blocks * (buf.f_bsize/1024); free_kbytes= buf.f_bavail * (buf.f_bsize/1024); if(total_kbytes > 0) percent = (int) ((1.0f-((float)free_kbytes/(float)total_kbytes))*100.0f); else { fprintf(stderr, "ENCODER: couldn't get disk stats for %s\n", path); return (1); /* don't invalidate video capture*/ } if(verbosity > 0) printf("ENCODER: (%s) %lluK bytes free on a total of %lluK (used: %d %%) treshold=%iK\n", path, (unsigned long long) free_kbytes, (unsigned long long) total_kbytes, percent, treshold); if(free_kbytes < treshold) { fprintf(stderr,"ENCODER: Not enough free disk space (%lluKb) left on disk, need > %ik \n", (unsigned long long) free_kbytes, treshold); return(0); /* not enough free space left on disk */ } return (1); /* still have enough free space on disk */ } guvcview-2.0.2+debian/gview_encoder/stream_io.c000066400000000000000000000117111256377215300215520ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "../config.h" #include "gviewencoder.h" #include "encoder.h" #include "stream_io.h" #include "gview.h" /* * get last stream of the list (list tail) * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to last stream of the list * or NULL if none */ stream_io_t *get_last_stream(stream_io_t *stream_list) { stream_io_t *stream = stream_list; if(!stream) return NULL; while(stream->next != NULL) stream = stream->next; return stream; } /* * add a new stream to the list * args: * stream_list - pointer to pointer of stream_list * list_size - pointer to list size * * asserts: * none * * returns: pointer to newly allocated stream */ stream_io_t *add_new_stream(stream_io_t **stream_list, int *list_size) { stream_io_t *stream = calloc(1, sizeof(stream_io_t)); if (stream == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (add_new_stream): %s\n", strerror(errno)); exit(-1); } stream->next = NULL; stream->id = *list_size; fprintf(stderr, "ENCODER: add stream %i to stream list\n", stream->id); stream_io_t *last_stream = get_last_stream(*stream_list); stream->previous = last_stream; if(last_stream) last_stream->next = stream; else *stream_list = stream; /*first stream*/ stream->indexes = NULL; *list_size = *list_size + 1; return(stream); } /* * destroy the sream list (free all streams) * args: * stream_list - pointer to stream list * list_size - pointer to list size * * asserts: * none * * returns: none */ void destroy_stream_list(stream_io_t *stream_list, int *list_size) { stream_io_t *stream = get_last_stream(stream_list); while(stream != NULL) //from end to start { stream_io_t *prev_stream = stream->previous; if(stream->indexes != NULL) free(stream->indexes); free(stream); stream = prev_stream; *list_size = *list_size - 1; } } /* * get stream with index from list * args: * stream_list - pointer to pointer of stream_list * index - stream index in the list * * asserts: * none * * returns: pointer to stream */ stream_io_t *get_stream(stream_io_t *stream_list, int index) { stream_io_t *stream = stream_list; if(!stream) return NULL; int j = 0; while(stream->next != NULL && (j < index)) { stream = stream->next; j++; } if(j != index) return NULL; return stream; } /* * get first video stream * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to stream */ stream_io_t *get_first_video_stream(stream_io_t *stream_list) { stream_io_t *stream = stream_list; while(stream != NULL) { if(stream->type == STREAM_TYPE_VIDEO) return stream; stream = stream->next; } return NULL; } /* * get first audio stream * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to stream */ //stream_io_t *get_first_audio_stream(stream_io_t *stream_list) //{ // stream_io_t *stream = stream_list; // // while(stream != NULL) // { // if(stream->type == STREAM_TYPE_AUDIO) // return stream; // // stream = stream->next; // } // // return NULL; //} guvcview-2.0.2+debian/gview_encoder/stream_io.h000066400000000000000000000110031256377215300215510ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef STREAM_IO_H #define STREAM_IO_H #include #include enum stream_t { STREAM_TYPE_VIDEO = 0, STREAM_TYPE_AUDIO = 1, STREAM_TYPE_SUB = 2 //not supported }; typedef enum stream_t stream_t; typedef struct _stream_io_t { stream_t type; /*stream type*/ int32_t id; uint32_t packet_count; /** AVI specific data */ void* indexes; /*pointer to avi_index struct*/ int32_t entry; int64_t rate_hdr_strm; int64_t frames_hdr_strm; char compressor[8]; /* Type of compressor, 4 bytes + padding for 0 byte */ int32_t codec_id; int32_t h264_process; /* Set to 1 if codec private data used (NALU marker needs to be processed)*/ /*video*/ int32_t width; /* Width of a video frame */ int32_t height; /* Height of a video frame */ double fps; /* Frames per second */ /*audio*/ int32_t a_fmt; /* Audio format, see #defines below */ int32_t a_chans; /* Audio channels, 0 for no audio */ int32_t a_rate; /* Rate in Hz */ int32_t a_bits; /* bits per audio sample */ int32_t mpgrate; /* mpg bitrate kbs*/ int32_t a_vbr; /* 0 == no Variable BitRate */ uint64_t audio_strm_length; /* Total number of bytes of audio data */ /*stream private data (codec private data)*/ uint8_t *extra_data; int32_t extra_data_size; struct _stream_io_t *previous, *next; } stream_io_t; /* * get last stream of the list (list tail) * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to last stream of the list * or NULL if none */ stream_io_t *get_last_stream(stream_io_t *stream_list); /* * add a new stream to the list * args: * stream_list - pointer to pointer of stream_list * list_size - pointer to list size * * asserts: * none * * returns: pointer to newly allocated stream */ stream_io_t *add_new_stream(stream_io_t **stream_list, int *list_size); /* * destroy the sream list (free all streams) * args: * stream_list - pointer to stream list * list_size - pointer to list size * * asserts: * none * * returns: none */ void destroy_stream_list(stream_io_t *stream_list, int *list_size); /* * get stream with index from list * args: * stream_list - pointer to pointer of stream_list * index - stream index in the list * * asserts: * none * * returns: pointer to stream */ stream_io_t *get_stream(stream_io_t *stream_list, int index); /* * get first video stream * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to stream */ stream_io_t *get_first_video_stream(stream_io_t *stream_list); /* * get first audio stream * args: * stream_list - pointer to stream list * * asserts: * none * * returns: pointer to stream */ //stream_io_t *get_first_audio_stream(stream_io_t *stream_list); #endif guvcview-2.0.2+debian/gview_encoder/video_codecs.c000066400000000000000000000614671256377215300222330ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gview.h" #include "encoder.h" #include "gviewencoder.h" extern int verbosity; /*if not defined don't set any bits but prevent build error*/ #ifndef CODEC_FLAG2_INTRA_REFRESH #define CODEC_FLAG2_INTRA_REFRESH 0 #endif static bmp_info_header_t mkv_codecPriv = { .biSize = 0x00000028, /*40 bytes*/ .biWidth = 640, /*default values (must be set before use)*/ .biHeight = 480, .biPlanes = 1, .biBitCount = 24, .biCompression = V4L2_PIX_FMT_MJPEG, .biSizeImage = 640*480*2, /*2 bytes per pixel (max buffer - use x3 for RGB)*/ .biXPelsPerMeter = 0, .biYPelsPerMeter = 0, .biClrUsed = 0, .biClrImportant = 0 }; /*list of software supported formats*/ static video_codec_t listSupCodecs[] = { /* * Raw camera input (yuvy or mjpg or H264) * we will set the correct codec data * depending on the V4L2_PIX_FMT_* * (this codec entry is always valid - index 0) */ { .valid = 1, .compressor = "YUY2", /*these will change according to camera input*/ .mkv_4cc = v4l2_fourcc('Y','U','Y','2'), .mkv_codec = "V_MS/VFW/FOURCC", .mkv_codecPriv= &mkv_codecPriv, .description = N_("Raw camera input"), .pix_fmt = AV_PIX_FMT_NONE, .fps = 0, .monotonic_pts= 0, .bit_rate = 0, .qmax = 0, .qmin = 0, .max_qdiff = 0, .dia = 0, .pre_dia = 0, .pre_me = 0, .me_pre_cmp = 0, .me_cmp = 0, .me_sub_cmp = 0, .last_pred = 0, .gop_size = 0, .qcompress = 0, .qblur = 0, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_NONE, .codec_name = "none", .mb_decision = 0, .trellis = 0, .me_method = 0, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 0, .flags = 0 }, { .valid = 1, .compressor = "MJPG", .mkv_4cc = v4l2_fourcc('M','J','P','G'), .mkv_codec = "V_MS/VFW/FOURCC", .mkv_codecPriv= &mkv_codecPriv, .description = N_("MJPG - compressed"), .pix_fmt = AV_PIX_FMT_YUVJ420P, .fps = 0, .monotonic_pts= 0, .bit_rate = 0, .qmax = 4, .qmin = 1, .max_qdiff = 2, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 12, .qcompress = 0.5, .qblur = 0.1, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_MJPEG, .codec_name = "mjpeg", .mb_decision = 0, .trellis = 0, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 0, .flags = 0 }, { .valid = 1, .compressor = "MPEG", .mkv_4cc = v4l2_fourcc('M','P','E','G'), .mkv_codec = "V_MPEG1", .mkv_codecPriv= NULL, .description = N_("MPEG video 1"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 30, .monotonic_pts= 1, .bit_rate = 3000000, .qmax = 8, .qmin = 2, .max_qdiff = 2, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 12, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_MPEG1VIDEO, .codec_name = "mpeg1video", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 1, .flags = 0 }, { .valid = 1, .compressor = "FLV1", .mkv_4cc = v4l2_fourcc('F','L','V','1'), .mkv_codec = "V_MS/VFW/FOURCC", .mkv_codecPriv= &mkv_codecPriv, .description = N_("FLV1 - flash video 1"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 3000000, .qmax = 31, .qmin = 2, .max_qdiff = 3, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 100, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_FLV1, .codec_name = "flv", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 1, .flags = CODEC_FLAG_4MV }, { .valid = 1, .compressor = "WMV1", .mkv_4cc = v4l2_fourcc('W','M','V','1'), .mkv_codec = "V_MS/VFW/FOURCC", .mkv_codecPriv= &mkv_codecPriv, .description = N_("WMV1 - win. med. video 7"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 3000000, .qmax = 8, .qmin = 2, .max_qdiff = 2, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 100, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_WMV1, .codec_name = "wmv1", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 1, .flags = 0 }, { .valid = 1, .compressor = "MPG2", .mkv_4cc = v4l2_fourcc('M','P','G','2'), .mkv_codec = "V_MPEG2", .mkv_codecPriv= NULL, .description = N_("MPG2 - MPG2 format"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 30, .monotonic_pts= 1, .bit_rate = 3000000, .qmax = 31, .qmin = 2, .max_qdiff = 3, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 12, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_MPEG2VIDEO, .codec_name = "mpeg2video", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 1, .flags = 0 }, { .valid = 1, .compressor = "MP43", .mkv_4cc = v4l2_fourcc('M','P','4','3'), .mkv_codec = "V_MPEG4/MS/V3", .mkv_codecPriv= NULL, .description = N_("MS MP4 V3"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 3000000, .qmax = 31, .qmin = 2, .max_qdiff = 3, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 100, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_MSMPEG4V3, .codec_name = "msmpeg4v3", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 0, .max_b_frames = 0, .num_threads = 1, .flags = 0 }, { .valid = 1, .compressor = "DX50", .mkv_4cc = v4l2_fourcc('D','X','5','0'), .mkv_codec = "V_MPEG4/ISO/ASP", .mkv_codecPriv= NULL, .description = N_("MPEG4-ASP"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 1500000, .qmax = 31, .qmin = 2, .max_qdiff = 3, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 100, .qcompress = 0.5, .qblur = 0.5, .subq = 0, .framerefs = 0, .codec_id = AV_CODEC_ID_MPEG4, .codec_name = "mpeg4", .mb_decision = FF_MB_DECISION_RD, .trellis = 1, .me_method = ME_EPZS, .mpeg_quant = 1, .max_b_frames = 0, .num_threads = 1, .flags = 0 }, { .valid = 1, .compressor = "H264", .mkv_4cc = v4l2_fourcc('H','2','6','4'), .mkv_codec = "V_MPEG4/ISO/AVC", .mkv_codecPriv= NULL, .description = N_("MPEG4-AVC (H264)"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 1500000, .qmax = 51, .qmin = 10, .max_qdiff = 4, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 100, .qcompress = 0.6, .qblur = 0.5, .subq = 5, .framerefs = 0, .codec_id = AV_CODEC_ID_H264, .codec_name = "libx264", .mb_decision = FF_MB_DECISION_RD, .trellis = 0, .me_method = ME_HEX, .mpeg_quant = 1, .max_b_frames = 0, .num_threads = 1, #if LIBAVCODEC_VER_AT_LEAST(54,01) .flags = CODEC_FLAG2_INTRA_REFRESH #else .flags = CODEC_FLAG2_BPYRAMID | CODEC_FLAG2_WPRED | CODEC_FLAG2_FASTPSKIP | CODEC_FLAG2_INTRA_REFRESH #endif }, { .valid = 1, .compressor = "VP80", .mkv_4cc = v4l2_fourcc('V','P','8','0'), .mkv_codec = "V_VP8", .mkv_codecPriv= NULL, .description = N_("VP8 (VP8)"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 600000, .qmax = 51, .qmin = 11, .max_qdiff = 4, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 120, .qcompress = 0.8, .qblur = 0.5, .subq = 5, .framerefs = 0, .codec_id = AV_CODEC_ID_VP8, .codec_name = "libvpx", .mb_decision = FF_MB_DECISION_RD, .trellis = 0, .me_method = ME_HEX, .mpeg_quant = 1, .max_b_frames = 0, .num_threads = 4, .flags = 0 }, { .valid = 1, .compressor = "theo", .mkv_4cc = v4l2_fourcc('t','h','e','o'), .mkv_codec = "V_THEORA", .mkv_codecPriv= NULL, .description = N_("Theora (ogg theora)"), .pix_fmt = AV_PIX_FMT_YUV420P, .fps = 0, .monotonic_pts= 1, .bit_rate = 600000, .qmax = 51, .qmin = 11, .max_qdiff = 4, .dia = 2, .pre_dia = 2, .pre_me = 2, .me_pre_cmp = 0, .me_cmp = 3, .me_sub_cmp = 3, .last_pred = 2, .gop_size = 120, .qcompress = 0.8, .qblur = 0.5, .subq = 5, .framerefs = 0, .codec_id = AV_CODEC_ID_THEORA, .codec_name = "libtheora", .mb_decision = FF_MB_DECISION_RD, .trellis = 0, .me_method = ME_HEX, .mpeg_quant = 1, .max_b_frames = 0, .num_threads = 1, .flags = 0 } }; /* * get default mkv_codecPriv * args: * none * * asserts: * none * * returns: pointer to bmp_info_header_t */ bmp_info_header_t *get_default_mkv_codecPriv() { return &mkv_codecPriv; } /* * get video codec list size * args: * none * * asserts: * none * * returns: listSupCodecs size (number of elements) */ int encoder_get_video_codec_list_size() { int size = sizeof(listSupCodecs)/sizeof(video_codec_t); if(verbosity > 3) printf("ENCODER: video codec list size:%i\n", size); return size; } /* * get video codec valid list size * args: * none * * asserts: * none * * returns: listSupCodecs valid number of elements */ //int encoder_get_video_codec_valid_list_size() //{ // int valid_size = 0; // // int i = 0; // for(i = 0; i < encoder_get_video_codec_list_size(); ++i) // if(listSupCodecs[i].valid) // valid_size++; // // if(verbosity > 3) // printf("ENCODER: video codec valid list size:%i\n", valid_size); // // return valid_size; //} /* * return the real (valid only) codec index * args: * codec_ind - codec list index (with non valid removed) * * asserts: * none * * returns: matching listSupCodecs index */ static int get_real_index (int codec_ind) { int i = 0; int ind = -1; for (i = 0; i < encoder_get_video_codec_list_size(); ++i) { if(listSupCodecs[i].valid) ind++; if(ind == codec_ind) return i; } return (codec_ind); //should never arrive } /* * return the list codec index * args: * real_ind - listSupCodecs index * * asserts: * none * * returns: matching list index (with non valid removed) */ static int get_list_index (int real_index) { if( real_index < 0 || real_index >= encoder_get_video_codec_list_size() || !listSupCodecs[real_index].valid ) return -1; //error: real index is not valid int i = 0; int ind = -1; for (i = 0; i<= real_index; ++i) { if(listSupCodecs[i].valid) ind++; } return (ind); } /* * get the mkv codec private data * args: * codec_ind - codec list index * * asserts: * none * * returns: pointer to mkvCodecPriv data */ void *encoder_get_video_mkvCodecPriv(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) return ((void *) listSupCodecs[real_index].mkv_codecPriv); else { fprintf(stderr, "ENCODER: (mkvCodecPriv) bad codec index\n"); return NULL; } } /* * set the video codec mkv private data * args: * encoder_ctx - pointer to encoder context * * asserts: * encoder_ctx is not null * * returns: mkvCodecPriv size */ int encoder_set_video_mkvCodecPriv(encoder_context_t *encoder_ctx) { /*assertions*/ assert(encoder_ctx != NULL); int size = 0; /*raw encoder*/ if(encoder_ctx->video_codec_ind == 0) { switch(encoder_ctx->input_format) { case V4L2_PIX_FMT_H264: { /*do we have SPS and PPS data ?*/ if(encoder_ctx->h264_sps_size <= 0 || encoder_ctx->h264_sps == NULL) { fprintf(stderr,"ENCODER: can't store H264 codec private data: No SPS data\n"); return 0; } if(encoder_ctx->h264_pps_size <= 0 || encoder_ctx->h264_pps == NULL) { fprintf(stderr,"ENCODER: can't store H264 codec private data: No PPS data\n"); return 0; } /*alloc the private data*/ size = 6 + 2 + encoder_ctx->h264_sps_size + 1 + 2 + encoder_ctx->h264_pps_size; encoder_ctx->enc_video_ctx->priv_data = calloc(size, sizeof(uint8_t)); if (encoder_ctx->enc_video_ctx->priv_data == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_video_mkvCodecPriv): %s\n", strerror(errno)); exit(-1); } if(verbosity > 1) printf("ENCODER: (video priv_data) processing %i bytes\n", size); /*write the codec private data*/ uint8_t *tp = encoder_ctx->enc_video_ctx->priv_data; /*header (6 bytes)*/ tp[0] = 1; //version tp[1] = encoder_ctx->h264_sps[1]; /* profile */ tp[2] = encoder_ctx->h264_sps[2]; /* profile compat */ tp[3] = encoder_ctx->h264_sps[3]; /* level */ tp[4] = 0xff; /* 6 bits reserved (111111) + 2 bits nal size length - 1 (11) */ tp[5] = 0xe1; /* 3 bits reserved (111) + 5 bits number of sps (00001) */ tp += 6; /*SPS: size (2 bytes) + SPS data*/ tp[0] = (uint8_t) (encoder_ctx->h264_sps_size >> 8); tp[1] = (uint8_t) encoder_ctx->h264_sps_size; //38 for logitech uvc 1.1 tp += 2; //SPS size (16 bit) memcpy(tp, encoder_ctx->h264_sps , encoder_ctx->h264_sps_size); tp += encoder_ctx->h264_sps_size; /*PPS number of pps (1 byte) + size (2 bytes) + PPS data*/ tp[0] = 0x01; //number of pps tp[1] = (uint8_t) (encoder_ctx->h264_pps_size >> 8); tp[2] = (uint8_t) encoder_ctx->h264_pps_size; //4 for logitech uvc 1.1 tp += 3; //PPS size (16 bit) memcpy(tp, encoder_ctx->h264_pps , encoder_ctx->h264_pps_size); listSupCodecs[0].mkv_codecPriv = encoder_ctx->enc_video_ctx->priv_data; break; } default: { bmp_info_header_t *mkv_codecPriv = get_default_mkv_codecPriv(); size = 40; mkv_codecPriv->biWidth = encoder_ctx->video_width; mkv_codecPriv->biHeight = encoder_ctx->video_height; mkv_codecPriv->biCompression = encoder_ctx->input_format; mkv_codecPriv->biSizeImage = encoder_ctx->video_width*encoder_ctx->video_height*3; /*3 bytes per pixel (max buffer - use x3 for RGB)*/ listSupCodecs[0].mkv_codecPriv = (void *) mkv_codecPriv; break; } } return(size); } /*assert video encoder context is not null*/ assert( encoder_ctx->enc_video_ctx); encoder_codec_data_t *video_codec_data = (encoder_codec_data_t *) encoder_ctx->enc_video_ctx->codec_data; /*assert video codec data is not null*/ assert(video_codec_data); int codec_id = video_codec_data->codec_context->codec_id; int real_index = get_video_codec_index(codec_id); if(codec_id == AV_CODEC_ID_THEORA) { /*get the 3 first header packets*/ uint8_t *header_start[3]; int header_len[3]; int first_header_size; first_header_size = 42; /*vorbis = 30*/ if (avpriv_split_xiph_headers( video_codec_data->codec_context->extradata, video_codec_data->codec_context->extradata_size, first_header_size, header_start, header_len) < 0) { fprintf(stderr, "ENCODER: (theora codec) - Extradata corrupt.\n"); return -1; } /*get the allocation needed for headers size*/ int header_lace_size[2]; header_lace_size[0]=0; header_lace_size[1]=0; int i; for (i = 0; i < header_len[0] / 255; i++) header_lace_size[0]++; header_lace_size[0]++; for (i = 0; i < header_len[1] / 255; i++) header_lace_size[1]++; header_lace_size[1]++; size = 1 + /*number of packets -1*/ header_lace_size[0] + //first packet size header_lace_size[1] + //second packet size header_len[0] + //first packet header header_len[1] + //second packet header header_len[2]; //third packet header /*should check and clean before allocating ??*/ encoder_ctx->enc_video_ctx->priv_data = calloc(size, sizeof(uint8_t)); if (encoder_ctx->enc_video_ctx->priv_data == NULL) { fprintf(stderr, "ENCODER: FATAL memory allocation failure (encoder_set_video_mkvCodecPriv): %s\n", strerror(errno)); exit(-1); } /*write header*/ uint8_t *tmp = encoder_ctx->enc_video_ctx->priv_data; *tmp++ = 0x02; /*number of packets -1*/ //size of head 1 for (i = 0; i < header_len[0] / 0xff; i++) *tmp++ = 0xff; *tmp++ = header_len[0] % 0xff; //size of head 2 for (i = 0; i < header_len[1] / 0xff; i++) *tmp++ = 0xff; *tmp++ = header_len[1] % 0xff; //add headers for(i=0; i<3; i++) { memcpy(tmp, header_start[i] , header_len[i]); tmp += header_len[i]; } listSupCodecs[real_index].mkv_codecPriv = encoder_ctx->enc_video_ctx->priv_data; } else if(listSupCodecs[real_index].mkv_codecPriv != NULL) { bmp_info_header_t *mkv_codecPriv = get_default_mkv_codecPriv(); mkv_codecPriv->biWidth = encoder_ctx->video_width; mkv_codecPriv->biHeight = encoder_ctx->video_height; mkv_codecPriv->biCompression = listSupCodecs[real_index].mkv_4cc;; mkv_codecPriv->biSizeImage = mkv_codecPriv->biWidth * mkv_codecPriv->biHeight * 2; /*2 bytes per pixel (max buffer - use x3 for RGB)*/ listSupCodecs[real_index].mkv_codecPriv = (void *) mkv_codecPriv; size = 40; //40 bytes } return (size); } /* * checks if the video codec index corresponds to VP8 (webm) codec * args: * codec_ind - video codec list index * * asserts: * none * * returns: 1 true; 0 false */ int encoder_check_webm_video_codec(int codec_ind) { int real_index = get_real_index (codec_ind); int ret = 0; if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) ret = (listSupCodecs[real_index].codec_id == AV_CODEC_ID_VP8) ? 1: 0; return ret; } /* * returns the real codec array index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_video_codec_index(int codec_id) { int i = 0; for(i = 0; i < encoder_get_video_codec_list_size(); ++i ) { if(codec_id == listSupCodecs[i].codec_id) return i; } return -1; } /* * returns the list codec index * args: * codec_id - codec id * * asserts: * none * * returns: real index or -1 if none */ int get_video_codec_list_index(int codec_id) { return get_list_index(get_video_codec_index(codec_id)); } /* * get the video codec index for VP8 (webm) codec * args: * none * * asserts: * none * * returns: index for VP8 codec or -1 if error */ int encoder_get_webm_video_codec_index() { return get_video_codec_list_index(AV_CODEC_ID_VP8); } /* * get video list codec entry for codec index * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ video_codec_t *encoder_get_video_codec_defaults(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) return (&(listSupCodecs[real_index])); else { fprintf(stderr, "ENCODER: (video codec defaults) bad codec index (%i)\n", codec_ind); return NULL; } } /* * sets the valid flag in the video codecs list * args: * none * * asserts: * none * * returns: number of valid video codecs in list */ int encoder_set_valid_video_codec_list () { int ind = 1; int num_codecs = 1; /*raw codec (no encoding) is always valid*/ for ( ind = 1; ind < encoder_get_video_codec_list_size(); ++ind) { AVCodec *codec = avcodec_find_encoder(listSupCodecs[ind].codec_id); if (!codec) { printf("ENCODER: no video codec detected for %s\n", listSupCodecs[ind].description); listSupCodecs[ind].valid = 0; } else num_codecs++; } return num_codecs; } /* * get video list codec description * args: * codec_ind - codec list index * * asserts: * none * * returns: list codec entry or NULL if none */ const char *encoder_get_video_codec_description(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) return (listSupCodecs[real_index].description); else { fprintf(stderr, "ENCODER: (video codec description) bad codec index (%i)\n", codec_ind); return NULL; } } /* * get video mkv codec * args: * codec_ind - codec list index * * asserts: * none * * returns: mkv codec entry or NULL if none */ const char *encoder_get_video_mkv_codec(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) return (listSupCodecs[real_index].mkv_codec); else { fprintf(stderr, "ENCODER: (video mkv codec) bad codec index (%i)\n", codec_ind);; return NULL; } } /* * get video compressor (avi 4cc code) * args: * codec_ind - codec list index * * asserts: * none * * returns: compressor codec entry or NULL if none */ const char *encoder_get_video_codec_4cc(int codec_ind) { int real_index = get_real_index (codec_ind); if(real_index >= 0 && real_index < encoder_get_video_codec_list_size()) return (listSupCodecs[real_index].compressor); else { fprintf(stderr, "ENCODER: (video mkv codec) bad codec index (%i)\n", codec_ind);; return NULL; } } /* * get video codec list index for avi 4cc * args: * codec_4cc - codec 4cc * * asserts: * none * * returns: codec index or -1 if error */ int encoder_get_video_codec_ind_4cc(const char *codec_4cc) { if(strcasecmp(codec_4cc, "raw") == 0) return 0; /*raw is always 0*/ int real_index = 1; int index = 0; /*skip raw codec*/ for(real_index = 1; real_index < encoder_get_video_codec_list_size(); ++real_index) { if(listSupCodecs[real_index].valid) index++; if(strcasecmp(codec_4cc, listSupCodecs[real_index].compressor) == 0) return index; } return -1; } guvcview-2.0.2+debian/gview_render/000077500000000000000000000000001256377215300172635ustar00rootroot00000000000000guvcview-2.0.2+debian/gview_render/Makefile.am000077500000000000000000000016121256377215300213220ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # Public headers h_sources = gviewrender.h c_sources = render.c \ render_fx.c \ render_osd_vu_meter.c \ render_osd_crosshair.c if ENABLE_SDL2 c_sources += render_sdl2.c else c_sources += render_sdl1.c endif #Install the headers in a versioned directory - guvcvideo-x.x/libgviewrender: library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWRENDER_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES= libgviewrender.la libgviewrender_la_SOURCES= $(h_sources) $(c_sources) libgviewrender_la_CFLAGS = $(GVIEWRENDER_CFLAGS) \ $(GSL_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewrender_la_LIBADD= $(GVIEWRENDER_LIBS) $(GSL_LIBS) libgviewrender_la_LDFLAGS= -version-info $(GVIEWRENDER_LIBRARY_VERSION) -release $(GVIEWRENDER_API_VERSION) guvcview-2.0.2+debian/gview_render/Makefile.in000066400000000000000000001001141256377215300213250ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_SDL2_TRUE@am__append_1 = render_sdl2.c @ENABLE_SDL2_FALSE@am__append_2 = render_sdl1.c subdir = gview_render DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(library_include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(library_includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libgviewrender_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am__libgviewrender_la_SOURCES_DIST = gviewrender.h render.c \ render_fx.c render_osd_vu_meter.c render_osd_crosshair.c \ render_sdl2.c render_sdl1.c am__objects_1 = @ENABLE_SDL2_TRUE@am__objects_2 = libgviewrender_la-render_sdl2.lo @ENABLE_SDL2_FALSE@am__objects_3 = libgviewrender_la-render_sdl1.lo am__objects_4 = libgviewrender_la-render.lo \ libgviewrender_la-render_fx.lo \ libgviewrender_la-render_osd_vu_meter.lo \ libgviewrender_la-render_osd_crosshair.lo $(am__objects_2) \ $(am__objects_3) am_libgviewrender_la_OBJECTS = $(am__objects_1) $(am__objects_4) libgviewrender_la_OBJECTS = $(am_libgviewrender_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgviewrender_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libgviewrender_la_CFLAGS) $(CFLAGS) \ $(libgviewrender_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgviewrender_la_SOURCES) DIST_SOURCES = $(am__libgviewrender_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(library_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Public headers h_sources = gviewrender.h c_sources = render.c render_fx.c render_osd_vu_meter.c \ render_osd_crosshair.c $(am__append_1) $(am__append_2) #Install the headers in a versioned directory - guvcvideo-x.x/libgviewrender: library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWRENDER_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES = libgviewrender.la libgviewrender_la_SOURCES = $(h_sources) $(c_sources) libgviewrender_la_CFLAGS = $(GVIEWRENDER_CFLAGS) \ $(GSL_CFLAGS) \ $(PTHREAD_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewrender_la_LIBADD = $(GVIEWRENDER_LIBS) $(GSL_LIBS) libgviewrender_la_LDFLAGS = -version-info $(GVIEWRENDER_LIBRARY_VERSION) -release $(GVIEWRENDER_API_VERSION) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_render/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign gview_render/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgviewrender.la: $(libgviewrender_la_OBJECTS) $(libgviewrender_la_DEPENDENCIES) $(EXTRA_libgviewrender_la_DEPENDENCIES) $(AM_V_CCLD)$(libgviewrender_la_LINK) -rpath $(libdir) $(libgviewrender_la_OBJECTS) $(libgviewrender_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_fx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_osd_crosshair.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_sdl1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewrender_la-render_sdl2.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgviewrender_la-render.lo: render.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render.Tpo -c -o libgviewrender_la-render.lo `test -f 'render.c' || echo '$(srcdir)/'`render.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render.Tpo $(DEPDIR)/libgviewrender_la-render.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render.c' object='libgviewrender_la-render.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render.lo `test -f 'render.c' || echo '$(srcdir)/'`render.c libgviewrender_la-render_fx.lo: render_fx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_fx.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_fx.Tpo -c -o libgviewrender_la-render_fx.lo `test -f 'render_fx.c' || echo '$(srcdir)/'`render_fx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_fx.Tpo $(DEPDIR)/libgviewrender_la-render_fx.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_fx.c' object='libgviewrender_la-render_fx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_fx.lo `test -f 'render_fx.c' || echo '$(srcdir)/'`render_fx.c libgviewrender_la-render_osd_vu_meter.lo: render_osd_vu_meter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_osd_vu_meter.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Tpo -c -o libgviewrender_la-render_osd_vu_meter.lo `test -f 'render_osd_vu_meter.c' || echo '$(srcdir)/'`render_osd_vu_meter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Tpo $(DEPDIR)/libgviewrender_la-render_osd_vu_meter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_osd_vu_meter.c' object='libgviewrender_la-render_osd_vu_meter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_osd_vu_meter.lo `test -f 'render_osd_vu_meter.c' || echo '$(srcdir)/'`render_osd_vu_meter.c libgviewrender_la-render_osd_crosshair.lo: render_osd_crosshair.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_osd_crosshair.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_osd_crosshair.Tpo -c -o libgviewrender_la-render_osd_crosshair.lo `test -f 'render_osd_crosshair.c' || echo '$(srcdir)/'`render_osd_crosshair.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_osd_crosshair.Tpo $(DEPDIR)/libgviewrender_la-render_osd_crosshair.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_osd_crosshair.c' object='libgviewrender_la-render_osd_crosshair.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_osd_crosshair.lo `test -f 'render_osd_crosshair.c' || echo '$(srcdir)/'`render_osd_crosshair.c libgviewrender_la-render_sdl2.lo: render_sdl2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_sdl2.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_sdl2.Tpo -c -o libgviewrender_la-render_sdl2.lo `test -f 'render_sdl2.c' || echo '$(srcdir)/'`render_sdl2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_sdl2.Tpo $(DEPDIR)/libgviewrender_la-render_sdl2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_sdl2.c' object='libgviewrender_la-render_sdl2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_sdl2.lo `test -f 'render_sdl2.c' || echo '$(srcdir)/'`render_sdl2.c libgviewrender_la-render_sdl1.lo: render_sdl1.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -MT libgviewrender_la-render_sdl1.lo -MD -MP -MF $(DEPDIR)/libgviewrender_la-render_sdl1.Tpo -c -o libgviewrender_la-render_sdl1.lo `test -f 'render_sdl1.c' || echo '$(srcdir)/'`render_sdl1.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewrender_la-render_sdl1.Tpo $(DEPDIR)/libgviewrender_la-render_sdl1.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='render_sdl1.c' object='libgviewrender_la-render_sdl1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewrender_la_CFLAGS) $(CFLAGS) -c -o libgviewrender_la-render_sdl1.lo `test -f 'render_sdl1.c' || echo '$(srcdir)/'`render_sdl1.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-library_includeHEADERS: $(library_include_HEADERS) @$(NORMAL_INSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ done uninstall-library_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-library_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES \ install-library_includeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/gview_render/gviewrender.h000066400000000000000000000145531256377215300217650ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Render library # # # ********************************************************************************/ #ifndef GVIEWRENDER_H #define GVIEWRENDER_H #include #include #include /*make sure we support c++*/ __BEGIN_DECLS #define RENDER_NONE (0) #define RENDER_SDL (1) #define EV_QUIT (0) #define EV_KEY_UP (1) #define EV_KEY_DOWN (2) #define EV_KEY_LEFT (3) #define EV_KEY_RIGHT (4) #define EV_KEY_SPACE (5) #define EV_KEY_I (6) #define EV_KEY_V (7) /*FX FILTER FLAGS*/ #define REND_FX_YUV_NOFILT (0) #define REND_FX_YUV_MIRROR (1<<0) #define REND_FX_YUV_UPTURN (1<<1) #define REND_FX_YUV_NEGATE (1<<2) #define REND_FX_YUV_MONOCR (1<<3) #define REND_FX_YUV_PIECES (1<<4) #define REND_FX_YUV_PARTICLES (1<<5) /*OSD FLAGS*/ #define REND_OSD_NONE (0) #define REND_OSD_VUMETER_MONO (1<<0) #define REND_OSD_VUMETER_STEREO (1<<1) #define REND_OSD_CROSSHAIR (1<<2) typedef int (*render_event_callback)(void *data); typedef struct _render_events_t { int id; render_event_callback callback; void *data; } render_events_t; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void render_set_verbosity(int value); /* * set the osd mask * args: * mask - osd mask (ored) * * asserts: * none * * returns: none */ void render_set_osd_mask(uint32_t mask); /* * get the osd mask * args: * none * * asserts: * none * * returns: osd mask */ uint32_t render_get_osd_mask(); /* * get render width * args: * none * * asserts: * none * * returns: render width */ int render_get_width(); /* * get render height * args: * none * * asserts: * none * * returns: render height */ int render_get_height(); /* * render initialization * args: * render - render API to use (RENDER_NONE, RENDER_SDL1, ...) * width - render width * height - render height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * none * * returns: error code */ int render_init(int render, int width, int height, int flags); /* * set caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void render_set_caption(const char* caption); /* * render a frame * args: * frame - pointer to frame data (yuyv format) * mask - fx filter mask (or'ed) * * asserts: * frame is not null * * returns: error code */ int render_frame(uint8_t *frame, uint32_t mask); /* * get event index on render_events_list * args: * id - event id * * asserts: * none * * returns: event index or -1 on error */ int render_get_event_index(int id); /* * set event callback * args: * id - event id * callback_function - pointer to callback function * data - pointer to user data (passed to callback) * * asserts: * none * * returns: error code */ int render_set_event_callback(int id, render_event_callback callback_function, void *data); /* * call the event callback for event id * args: * id - event id * * asserts: * none * * returns: error code */ int render_call_event_callback(int id); /* * Apply fx filters * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height - frame height * mask - or'ed filter mask * * asserts: * frame is not null * * returns: void */ void render_fx_apply(uint8_t *frame, int width, int height, uint32_t mask); /* * set the vu level for the osd vu meter * args: * vu_level - vu level value (2 channel array) * * asserts: * none * * returns: none */ void render_set_vu_level(float vu_level[2]); /* * get the vu level for the osd vu meter * args: * vu_level - two channel array were vu_level is to be copied * * asserts: * none * * returns array with vu meter level */ void render_get_vu_level(float vu_level[2]); /* * clean fx filters * args: * none * * asserts: * none * * returns: void */ void render_clean_fx(); /* * clean render data * args: * none * * asserts: * none * * returns: none */ void render_close(); __END_DECLS #endif guvcview-2.0.2+debian/gview_render/render.c000066400000000000000000000203701256377215300207100ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # Render library # # # ********************************************************************************/ #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewrender.h" #include "../config.h" #if ENABLE_SDL2 #include "render_sdl2.h" #else #include "render_sdl1.h" #endif int verbosity = 0; static int render_api = RENDER_SDL; static int my_width = 0; static int my_height = 0; static uint32_t my_osd_mask = REND_OSD_NONE; static float osd_vu_level[2] = {0, 0}; static render_events_t render_events_list[] = { { .id = EV_QUIT, .callback = NULL, .data = NULL }, { .id = EV_KEY_UP, .callback = NULL, .data = NULL }, { .id = EV_KEY_DOWN, .callback = NULL, .data = NULL }, { .id = EV_KEY_LEFT, .callback = NULL, .data = NULL }, { .id = EV_KEY_RIGHT, .callback = NULL, .data = NULL }, { .id = EV_KEY_SPACE, .callback = NULL, .data = NULL }, { .id = EV_KEY_I, .callback = NULL, .data = NULL }, { .id = EV_KEY_V, .callback = NULL, .data = NULL }, { .id = -1, /*end of list*/ .callback = NULL, .data = NULL } }; /* * set verbosity * args: * value - verbosity value * * asserts: * none * * returns: none */ void render_set_verbosity(int value) { verbosity = value; } /* * set the osd mask * args: * mask - osd mask (ored) * * asserts: * none * * returns: none */ void render_set_osd_mask(uint32_t mask) { my_osd_mask = mask; } /* * get the osd mask * args: * none * * asserts: * none * * returns: osd mask */ uint32_t render_get_osd_mask() { return (my_osd_mask); } /* * set the vu level for the osd vu meter * args: * vu_level - vu level value (2 channel array) * * asserts: * none * * returns: none */ void render_set_vu_level(float vu_level[2]) { osd_vu_level[0] = vu_level[0]; osd_vu_level[1] = vu_level[1]; } /* * get the vu level for the osd vu meter * args: * vu_level - two channel array were vu_level is to be copied * * asserts: * none * * returns array with vu meter level */ void render_get_vu_level(float vu_level[2]) { vu_level[0] = osd_vu_level[0]; vu_level[1] = osd_vu_level[1]; } /* * get render width * args: * none * * asserts: * none * * returns: render width */ int render_get_width() { return my_width; } /* * get render height * args: * none * * asserts: * none * * returns: render height */ int render_get_height() { return my_height; } /* * render initialization * args: * render - render API to use (RENDER_NONE, RENDER_SDL1, ...) * width - render width * height - render height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * none * * returns: error code */ int render_init(int render, int width, int height, int flags) { int ret = 0; render_api = render; my_width = width; my_height = height; switch(render_api) { case RENDER_NONE: break; case RENDER_SDL: default: #if ENABLE_SDL2 ret = init_render_sdl2(my_width, my_height, flags); #else ret = init_render_sdl1(my_width, my_height, flags); #endif break; } if(ret) render_api = RENDER_NONE; return ret; } /* * render a frame * args: * frame - pointer to frame data (yuyv format) * mask - fx filter mask (or'ed) * * asserts: * frame is not null * * returns: error code */ int render_frame(uint8_t *frame, uint32_t mask) { /*asserts*/ assert(frame != NULL); /*apply fx filters to frame*/ render_fx_apply(frame, my_width, my_height, mask); int ret = 0; switch(render_api) { case RENDER_NONE: break; case RENDER_SDL: default: #if ENABLE_SDL2 ret = render_sdl2_frame(frame, my_width, my_height); render_sdl2_dispatch_events(); #else ret = render_sdl1_frame(frame, my_width, my_height); render_sdl1_dispatch_events(); #endif break; } return ret; } /* * set caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void render_set_caption(const char* caption) { switch(render_api) { case RENDER_NONE: break; case RENDER_SDL: default: #if ENABLE_SDL2 set_render_sdl2_caption(caption); #else set_render_sdl1_caption(caption); #endif break; } } /* * clean render data * args: * none * * asserts: * none * * returns: none */ void render_close() { switch(render_api) { case RENDER_NONE: break; case RENDER_SDL: default: #if ENABLE_SDL2 render_sdl2_clean(); #else render_sdl1_clean(); #endif break; } /*clean fx data*/ render_clean_fx(); my_width = 0; my_height = 0; } /* * get event index on render_events_list * args: * id - event id * * asserts: * none * * returns: event index or -1 on error */ int render_get_event_index(int id) { int i = 0; while(render_events_list[i].id >= 0) { if(render_events_list[i].id == id) return i; i++; } return -1; } /* * set event callback * args: * id - event id * callback_function - pointer to callback function * data - pointer to user data (passed to callback) * * asserts: * none * * returns: error code */ int render_set_event_callback(int id, render_event_callback callback_function, void *data) { int index = render_get_event_index(id); if(index < 0) return index; render_events_list[index].callback = callback_function; render_events_list[index].data = data; return 0; } /* * call the event callback for event id * args: * id - event id * * asserts: * none * * returns: error code */ int render_call_event_callback(int id) { int index = render_get_event_index(id); if(verbosity > 1) printf("RENDER: event %i -> callback %i\n", id, index); if(index < 0) return index; if(render_events_list[index].callback == NULL) return -1; int ret = render_events_list[index].callback(render_events_list[index].data); return ret; } guvcview-2.0.2+debian/gview_render/render.h000066400000000000000000000047341256377215300207230ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /* * render a vu meter * args: * frame - pointer to yuyv frame data * width - frame width * height - frame height * vu_level - vu level values (array with 2 channels) * * asserts: * none * * returns: none */ void render_osd_vu_meter(uint8_t *frame, int width, int height, float vu_level[2]); /* * render a crosshair * args: * frame - pointer to yuyv frame data * width - frame width * height - frame height * * asserts: * none * * returns: none */ void render_osd_crosshair(uint8_t *frame, int width, int height);guvcview-2.0.2+debian/gview_render/render_fx.c000066400000000000000000000446321256377215300214140ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include "gviewrender.h" #include "gview.h" #include "../config.h" /*random generator (HAS_GSL is set in ../config.h)*/ #ifdef HAS_GSL #include #endif typedef struct _particle_t { int PX; int PY; uint8_t Y; uint8_t U; uint8_t V; int size; float decay; } particle_t; static particle_t *particles = NULL; /* * Flip YUYV frame - horizontal * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yuyv_mirror (uint8_t *frame, int width, int height) { /*asserts*/ assert(frame != NULL); int h=0; int w=0; int sizeline = width*2; /* 2 bytes per pixel*/ uint8_t *pframe; pframe=frame; uint8_t line[sizeline-1]; /*line buffer*/ for (h=0; h < height; h++) { /*line iterator*/ for(w=sizeline-1; w > 0; w = w - 4) { /* pixel iterator */ line[w-1]=*pframe++; line[w-2]=*pframe++; line[w-3]=*pframe++; line[w]=*pframe++; } memcpy(frame+(h*sizeline), line, sizeline); /*copy reversed line to frame buffer*/ } } /* * Flip yu12 frame - horizontal * args: * frame - pointer to frame buffer (yu12=iyuv format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yu12_mirror (uint8_t *frame, int width, int height) { /*asserts*/ assert(frame != NULL); int h=0; int w=0; int y_sizeline = width; int c_sizeline = width/2; uint8_t *end = NULL; uint8_t *end2 = NULL; uint8_t *py = frame; uint8_t *pu = frame + (width * height); uint8_t *pv = pu + ((width * height) / 4); uint8_t pixel =0; uint8_t pixel2=0; /*mirror y*/ for(h = 0; h < height; h++) { py = frame + (h * width); end = py + width - 1; for(w = 0; w < width/2; w++) { pixel = *py; *py++ = *end; *end-- = pixel; } } /*mirror u v*/ for(h = 0; h < height; h+=2) { pu = frame + (width * height) + ((h * width) / 4); pv = pu + ((width * height) / 4); end = pu + (width / 2) - 1; end2 = pv + (width / 2) -1; for(w = 0; w < width/2; w+=2) { pixel = *pu; pixel2 = *pv; *pu++ = *end; *pv++ = *end2; *end-- = pixel; *end2-- = pixel2; } } } /* * Invert YUV frame * args: * frame - pointer to frame buffer (any yuv format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yuv_negative(uint8_t *frame, int width, int height) { /*asserts*/ assert(frame != NULL); #ifdef USE_PLANAR_YUV int size = (width * height * 5) / 4; #else int size= width * height * 2; #endif int i=0; for(i=0; i < size; i++) frame[i] = ~frame[i]; } /* * Flip YUV frame - vertical * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yuyv_upturn(uint8_t *frame, int width, int height) { /*asserts*/ assert(frame != NULL); int h = 0; int sizeline = width * 2; /* 2 bytes per pixel*/ uint8_t line1[sizeline-1]; /*line1 buffer*/ uint8_t line2[sizeline-1]; /*line2 buffer*/ for ( h = 0; h < height/2; ++h) { /*line iterator*/ memcpy(line1, frame + h * sizeline, sizeline); memcpy(line2, frame + (height - 1 - h) * sizeline, sizeline); memcpy(frame + h * sizeline, line2, sizeline); memcpy(frame + (height - 1 - h) * sizeline, line1, sizeline); } } /* * Flip yu12 frame - vertical * args: * frame - pointer to frame buffer (yu12 format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yu12_upturn(uint8_t *frame, int width, int height) { /*asserts*/ assert(frame != NULL); int h = 0; uint8_t line[width]; /*line1 buffer*/ uint8_t *pi = frame; //begin of first y line uint8_t *pf = pi + (width * (height - 1)); //begin of last y line /*upturn y*/ for ( h = 0; h < height / 2; ++h) { /*line iterator*/ memcpy(line, pi, width); memcpy(pi, pf, width); memcpy(pf, line, width); pi+=width; pf-=width; } /*upturn u*/ pi = frame + (width * height); //begin of first u line pf = pi + ((width * height) / 4) - (width / 2); //begin of last u line for ( h = 0; h < height / 2; h += 2) //every two lines = height / 4 { /*line iterator*/ memcpy(line, pi, width / 2); memcpy(pi, pf, width / 2); memcpy(pf, line, width / 2); pi+=width/2; pf-=width/2; } /*upturn v*/ pi = frame + ((width * height * 5) / 4); //begin of first v line pf = pi + ((width * height) / 4) - (width / 2); //begin of last v line for ( h = 0; h < height / 2; h += 2) //every two lines = height / 4 { /*line iterator*/ memcpy(line, pi, width / 2); memcpy(pi, pf, width / 2); memcpy(pf, line, width / 2); pi+=width/2; pf-=width/2; } } /* * Monochromatic effect for YUYV frame * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yuyv_monochrome(uint8_t* frame, int width, int height) { int size = width * height * 2; int i = 0; for(i=0; i < size; i = i + 4) { /* keep Y - luma */ frame[i+1]=0x80;/*U - median (half the max value)=128*/ frame[i+3]=0x80;/*V - median (half the max value)=128*/ } } /* * Monochromatic effect for yu12 frame * args: * frame - pointer to frame buffer (yu12 format) * width - frame width * height- frame height * * asserts: * frame is not null * * returns: void */ static void fx_yu12_monochrome(uint8_t* frame, int width, int height) { uint8_t *puv = frame + (width * height); //skip luma int i = 0; for(i=0; i < (width * height) / 2; ++i) { /* keep Y - luma */ *puv++=0x80;/*median (half the max value)=128*/ } } #ifdef HAS_GSL /* * Break yuyv image in little square pieces * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height - frame height * piece_size - multiple of 2 (we need at least 2 pixels to get the entire pixel information) * * asserts: * frame is not null */ static void fx_yuyv_pieces(uint8_t* frame, int width, int height, int piece_size ) { int numx = width / piece_size; //number of pieces in x axis int numy = height / piece_size; //number of pieces in y axis uint8_t *piece = calloc (piece_size * piece_size * 2, sizeof(uint8_t)); if(piece == NULL) { fprintf(stderr,"RENDER: FATAL memory allocation failure (fx_pieces): %s\n", strerror(errno)); exit(-1); } int i = 0, j = 0, line = 0, column = 0, linep = 0, px = 0, py = 0; /*random generator setup*/ gsl_rng_env_setup(); const gsl_rng_type *T = gsl_rng_default; gsl_rng *r = gsl_rng_alloc (T); int rot = 0; for(j = 0; j < numy; j++) { int row = j * piece_size; for(i = 0; i < numx; i++) { column = i * piece_size * 2; //get piece for(py = 0; py < piece_size; py++) { linep = py * piece_size * 2; line = (py + row) * width * 2; for(px=0 ; px < piece_size * 2; px++) { piece[px + linep] = frame[(px + column) + line]; } } /*rotate piece and copy it to frame*/ //rotation is random rot = (int) lround(8 * gsl_rng_uniform (r)); /*0 to 8*/ switch(rot) { case 0: // do nothing break; case 5: case 1: //mirror fx_yuyv_mirror(piece, piece_size, piece_size); break; case 6: case 2: //upturn fx_yuyv_upturn(piece, piece_size, piece_size); break; case 4: case 3://mirror upturn fx_yuyv_upturn(piece, piece_size, piece_size); fx_yuyv_mirror(piece, piece_size, piece_size); break; default: //do nothing break; } //write piece for(py = 0; py < piece_size; py++) { linep = py * piece_size * 2; line = (py + row) * width * 2; for(px=0 ; px < piece_size * 2; px++) { frame[(px + column) + line] = piece[px + linep]; } } } } /*free the random seed generator*/ gsl_rng_free (r); /*free the piece buffer*/ free(piece); } /* * Break yu12 image in little square pieces * args: * frame - pointer to frame buffer (yu12 format) * width - frame width * height - frame height * piece_size - multiple of 2 (we need at least 2 pixels to get the entire pixel information) * * asserts: * frame is not null */ static void fx_yu12_pieces(uint8_t* frame, int width, int height, int piece_size ) { int numx = width / piece_size; //number of pieces in x axis int numy = height / piece_size; //number of pieces in y axis uint8_t piece[(piece_size * piece_size * 3) / 2]; uint8_t *ppiece = piece; int i = 0, j = 0, w = 0, h = 0; /*random generator setup*/ gsl_rng_env_setup(); const gsl_rng_type *T = gsl_rng_default; gsl_rng *r = gsl_rng_alloc (T); int rot = 0; uint8_t *py = NULL; uint8_t *pu = NULL; uint8_t *pv = NULL; for(h = 0; h < height; h += piece_size) { for(w = 0; w < width; w += piece_size) { uint8_t *ppy = piece; uint8_t *ppu = piece + (piece_size * piece_size); uint8_t *ppv = ppu + ((piece_size * piece_size) / 4); for(i = 0; i < piece_size; ++i) { py = frame + ((h + i) * width) + w; for (j=0; j < piece_size; ++j) { *ppy++ = *py++; } } for(i = 0; i < piece_size; i += 2) { uint8_t *pu = frame + (width * height) + (((h + i) * width) / 4) + (w / 2); uint8_t *pv = pu + ((width * height) / 4); for(j = 0; j < piece_size; j += 2) { *ppu++ = *pu++; *ppv++ = *pv++; } } ppy = piece; ppu = piece + (piece_size * piece_size); ppv = ppu + ((piece_size * piece_size) / 4); /*rotate piece and copy it to frame*/ //rotation is random rot = (int) lround(8 * gsl_rng_uniform (r)); /*0 to 8*/ switch(rot) { case 0: // do nothing break; case 5: case 1: //mirror fx_yu12_mirror(piece, piece_size, piece_size); break; case 6: case 2: //upturn fx_yu12_upturn(piece, piece_size, piece_size); break; case 4: case 3://mirror upturn fx_yu12_upturn(piece, piece_size, piece_size); fx_yu12_mirror(piece, piece_size, piece_size); break; default: //do nothing break; } ppy = piece; ppu = piece + (piece_size * piece_size); ppv = ppu + ((piece_size * piece_size) / 4); for(i = 0; i < piece_size; ++i) { py = frame + ((h + i) * width) + w; for (j=0; j < piece_size; ++j) { *py++ = *ppy++; } } for(i = 0; i < piece_size; i += 2) { uint8_t *pu = frame + (width * height) + (((h + i) * width) / 4) + (w / 2); uint8_t *pv = pu + ((width * height) / 4); for(j = 0; j < piece_size; j += 2) { *pu++ = *ppu++; *pv++ = *ppv++; } } } } /*free the random seed generator*/ gsl_rng_free (r); } /* * Trail of particles obtained from the image frame * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height - frame height * trail_size - trail size (in frames) * particle_size - maximum size in pixels - should be even (square - size x size) * * asserts: * frame is not null * * returns: void */ static void fx_particles(uint8_t* frame, int width, int height, int trail_size, int particle_size) { /*asserts*/ assert(frame != NULL); int i,j,w,h = 0; int part_w = width>>7; int part_h = height>>6; /*random generator setup*/ gsl_rng_env_setup(); const gsl_rng_type *T = gsl_rng_default; gsl_rng *r = gsl_rng_alloc (T); /*allocation*/ if (particles == NULL) { particles = calloc(trail_size * part_w * part_h, sizeof(particle_t)); if(particles == NULL) { fprintf(stderr,"RENDER: FATAL memory allocation failure (fx_particles): %s\n", strerror(errno)); exit(-1); } } particle_t *part = particles; particle_t *part1 = part; /*move particles in trail*/ for (i = trail_size; i > 1; --i) { part += (i - 1) * part_w * part_h; part1 += (i - 2) * part_w * part_h; for (j= 0; j < part_w * part_h; ++j) { if(part1->decay > 0) { part->PX = part1->PX + (int) lround(3 * gsl_rng_uniform (r)); /*0 to 3*/ part->PY = part1->PY -4 + (int) lround(5 * gsl_rng_uniform (r));/*-4 to 1*/ if(ODD(part->PX)) part->PX++; /*make sure PX is allways even*/ if((part->PX > (width-particle_size)) || (part->PY > (height-particle_size)) || (part->PX < 0) || (part->PY < 0)) { part->PX = 0; part->PY = 0; part->decay = 0; } else { part->decay = part1->decay - 1; } part->Y = part1->Y; part->U = part1->U; part->V = part1->V; part->size = part1->size; } else { part->decay = 0; } part++; part1++; } part = particles; /*reset*/ part1 = part; } part = particles; /*reset*/ /*get particles from frame (one pixel per particle - make PX allways even)*/ for(i =0; i < part_w * part_h; i++) { /* (2 * particle_size) to (width - 4 * particle_size)*/ part->PX = 2 * particle_size + (int) lround( (width - 6 * particle_size) * gsl_rng_uniform (r)); /* (2 * particle_size) to (height - 4 * particle_size)*/ part->PY = 2 * particle_size + (int) lround( (height - 6 * particle_size) * gsl_rng_uniform (r)); if(ODD(part->PX)) part->PX++; #ifdef USE_PLANAR_YUV int y_pos = part->PX + (part->PY * width); int u_pos = (part->PX + (part->PY * width / 2)) / 2; int v_pos = u_pos + ((width * height) / 4); part->Y = frame[y_pos]; part->U = frame[u_pos]; part->V = frame[v_pos]; #else int y_pos = part->PX * 2 + (part->PY * width * 2); part->Y = frame[y_pos]; part->U = frame[y_pos +1]; part->V = frame[y_pos +3]; #endif part->size = 1 + (int) lround((particle_size -1) * gsl_rng_uniform (r)); if(ODD(part->size)) part->size++; part->decay = (float) trail_size; part++; /*next particle*/ } part = particles; /*reset*/ int line = 0; float blend =0; float blend1 =0; /*render particles to frame (expand pixel to particle size)*/ for (i = 0; i < trail_size * part_w * part_h; i++) { if(part->decay > 0) { #ifdef USE_PLANAR_YUV int y_pos = part->PX + (part->PY * width); int u_pos = (part->PX + (part->PY * width / 2)) / 2; int v_pos = u_pos + ((width * height) / 4); blend = part->decay/trail_size; blend1= 1 - blend; //y for(h = 0; h <(part->size); h++) { line = h * width; for (w = 0; w <(part->size); w++) { frame[y_pos + line + w] = CLIP((part->Y * blend) + (frame[y_pos + line + w] * blend1)); } } //u v for(h = 0; h <(part->size); h+=2) { line = (h * width) / 4; for (w = 0; w <(part->size); w+=2) { frame[u_pos + line + (w / 2)] = CLIP((part->U * blend) + (frame[u_pos + line + (w / 2)] * blend1)); frame[v_pos + line + (w / 2)] = CLIP((part->V * blend) + (frame[v_pos + line + (w / 2)] * blend1)); } } #else int y_pos = part->PX * 2 + (part->PY * width * 2); blend = part->decay/trail_size; blend1= 1 -blend; for(h=0; h<(part->size); h++) { line = h * width * 2; for (w=0; w<(part->size)*2; w+=4) { frame[y_pos + w + line] = CLIP(part->Y*blend + frame[y_pos + w + line]*blend1); frame[(y_pos + w + 1) + line] = CLIP(part->U*blend + frame[(y_pos + w + 1) + line]*blend1); frame[(y_pos + w + 2) + line] = CLIP(part->Y*blend + frame[(y_pos + w + 2) + line]*blend1); frame[(y_pos + w + 3) + line] = CLIP(part->V*blend + frame[(y_pos + w + 3) + line]*blend1); } } #endif } part++; } /*free the random seed generator*/ gsl_rng_free (r); } #endif /* * Apply fx filters * args: * frame - pointer to frame buffer (yuyv format) * width - frame width * height - frame height * mask - or'ed filter mask * * asserts: * frame is not null * * returns: void */ void render_fx_apply(uint8_t *frame, int width, int height, uint32_t mask) { if(mask != REND_FX_YUV_NOFILT) { #ifdef HAS_GSL if(mask & REND_FX_YUV_PARTICLES) fx_particles (frame, width, height, 20, 4); #endif if(mask & REND_FX_YUV_MIRROR) #ifdef USE_PLANAR_YUV fx_yu12_mirror(frame, width, height); #else fx_yuyv_mirror(frame, width, height); #endif if(mask & REND_FX_YUV_UPTURN) #ifdef USE_PLANAR_YUV fx_yu12_upturn(frame, width, height); #else fx_yuyv_upturn(frame, width, height); #endif if(mask & REND_FX_YUV_NEGATE) fx_yuv_negative (frame, width, height); if(mask & REND_FX_YUV_MONOCR) #ifdef USE_PLANAR_YUV fx_yu12_monochrome (frame, width, height); #else fx_yuyv_monochrome (frame, width, height); #endif #ifdef HAS_GSL if(mask & REND_FX_YUV_PIECES) #ifdef USE_PLANAR_YUV fx_yu12_pieces(frame, width, height, 16 ); #else fx_yuyv_pieces(frame, width, height, 16 ); #endif #endif } else render_clean_fx(); } /* * clean fx filters * args: * none * * asserts: * none * * returns: void */ void render_clean_fx() { if(particles != NULL) { free(particles); particles = NULL; } } guvcview-2.0.2+debian/gview_render/render_osd_crosshair.c000066400000000000000000000144201256377215300236310ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include "gview.h" #include "gviewrender.h" extern int verbosity; typedef struct _yuv_color_t { int8_t y; int8_t u; int8_t v; } yuv_color_t; /* * plot a crosshair in a yuyv frame (packed) * args: * frame - pointer to yuyv frame data * size - crossair size in pixels (width) * width - width * height - height * color - box color * * asserts: * none * * returns: none */ static plot_crosshair_yuyv(uint8_t *frame, int size, int width, int height, yuv_color_t *color) { int linesize = width*2; /*two bytes per pixel*/ /*1st vertical line*/ int y = 0; /*center - size/2 to center - 2*/ for (y = (height-size)/2; y < (height/2) - 2; y++) { int bi = (y * linesize) + width; /*center (2 bytes per pixel)*/ /*we set two pixels in each loop*/ frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; } /*1st horizontal line*/ int x = (width-size)/2; /*center - size/2 to center -4*/ for (x = (width-size)/2; x < (width/2) - 4; x+=2) { int bi = (x * 2) + (height/2)*linesize; /*center (2 bytes per pixel)*/ /*we set two pixels in each loop*/ frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; } /*2nd horizontal line*/ /*center + 2 to center + size/2 -2*/ for (x = (width/2) + 2; x < (width + size)/ 2 - 2; x+=2) { int bi = (x * 2) + (height/2)*linesize; /*center (2 bytes per pixel)*/ /*we set two pixels in each loop*/ frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; } /*2st vertical line*/ /*center + 2 to center + size/2*/ for (y = (height/2) +2; y < (height+size)/2; y++) { int bi = (y * linesize) + width; /*center (2 bytes per pixel)*/ /*we set two pixels in each loop*/ frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; } } /* * plot a crosshair in a yu12 frame (planar) * args: * frame - pointer to yu12 frame data * size - frame line size in pixels (width) * width - width * height - height * color - line color * * asserts: * none * * returns: none */ static plot_crosshair_yu12(uint8_t *frame, int size, int width, int height, yuv_color_t *color) { uint8_t *py = frame; uint8_t *pu = frame + (width * height); uint8_t *pv = pu + ((width * height) / 4); /*y - 1st vertical line*/ int h = (height-size)/2; for(h = (height-size)/2; h < height/2 - 2; h++) { py = frame + (h * width) + width/2; *py = color->y; } /*y - 1st horizontal line*/ int w = (width-size)/2; for(w = (width-size)/2; w < width/2 - 2; w++) { py = frame + ((height/2) * width) + w; *py = color->y; } /*y - 2nd horizontal line*/ for(w = width/2 + 2; w < (width+size)/2; w++) { py = frame + ((height/2) * width) + w; *py = color->y; } /*y - 2nd vertical line*/ for(h = height/2 + 2; h < (height+size)/2; h++) { py = frame + (h * width) + width/2; *py = color->y; } /*u v - 1st vertical line*/ for(h = (height-size)/4; h < height/4 - 1; h++) /*every two rows*/ { pu = frame + (width * height) + (h * width/2) + width/4; *pu = color->u; pv = pu + (width * height)/4; *pv = color->v; } /*u v - 1st horizontal line*/ for(w = (width-size)/4; w < width/4 - 1; w++) /*every two rows*/ { pu = frame + (width * height) + ((height/4) * width/2) + w; *pu = color->u; pv = pu + (width * height)/4; *pv = color->v; } /*u v - 2nd horizontal line*/ for(w = width/4 + 1; w < (width+size)/4; w++) /*every two rows*/ { pu = frame + (width * height) + ((height/4) * width/2) + w; *pu = color->u; pv = pu + (width * height)/4; *pv = color->v; } /*u v - 2nd vertical line*/ for(h = height/4 + 1; h < (height+size)/4; h++) /*every two rows*/ { pu = frame + (width * height) + (h * width/2) + width/4; *pu = color->u; pv = pu + (width * height)/4; *pv = color->v; } } /* * render a crosshair * args: * frame - pointer to yuyv frame data * width - frame width * height - frame height * * asserts: * none * * returns: none */ void render_osd_crosshair(uint8_t *frame, int width, int height) { yuv_color_t color; color.y = 154; color.u = 72; color.v = 57; #ifdef USE_PLANAR_YUV plot_crosshair_yu12(frame, 24, width, height, &color); #else plot_crosshair_yuyv(frame, 24, width, height, &color); #endif } guvcview-2.0.2+debian/gview_render/render_osd_vu_meter.c000066400000000000000000000205441256377215300234660ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include "gview.h" #include "gviewrender.h" extern int verbosity; typedef struct _yuv_color_t { int8_t y; int8_t u; int8_t v; } yuv_color_t; #define REFERENCE_LEVEL 0.8 #define VU_BARS 20 static float vu_peak[2] = {0.0, 0.0}; static float vu_peak_freeze[2]= {0.0 ,0.0}; /* * plot a rectangular box in a yuyv frame (packed) * args: * frame - pointer to yuyv frame data * linesize - frame line size in pixels (width) * x - box top left x coordinate * y - box top left y coordinate * width - box width * height - box height * color - box color * * asserts: * none * * returns: none */ static plot_box_yuyv(uint8_t *frame, int linesize, int x, int y, int width, int height, yuv_color_t *color) { int i = 0; for (i = 0; i < height; ++i) { int bi = 2 * (x + (y * linesize)); /*2 bytes per pixel*/ y++; /*next row*/ int j = 0; for (j = 0; j < width/2; ++j) /*packed yuyv*/ { /*we set two pixels in each loop*/ frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; bi += 4; /*next two pixels*/ } } } /* * plot a line in a yuyv frame (packed) * args: * frame - pointer to yuyv frame data * linesize - frame line size in pixels (width) * x - box top left x coordinate * y - box top left y coordinate * width - line width * color - line color * * asserts: * none * * returns: none */ static plot_line_yuyv(uint8_t *frame, int linesize, int x, int y, int width, yuv_color_t *color) { int bi = 2 * (x + (y * linesize)); int j = 0; for (j = 0; j < width/2; j++) { frame[bi] = color->y; frame[bi+1] = color->u; frame[bi+2] = color->y; frame[bi+3] = color->v; bi += 4; } } /* * plot a rectangular box in a yu12 frame (planar) * args: * frame - pointer to yu12 frame data * lines - number of lines in frame (height) * linesize - frame line size in pixels (width) * x - box top left x coordinate * y - box top left y coordinate * width - box width * height - box height * color - box color * * asserts: * none * * returns: none */ static plot_box_yu12(uint8_t *frame, int lines, int linesize, int x, int y, int width, int height, yuv_color_t *color) { uint8_t *py = frame; uint8_t *pu = frame + (linesize * lines); uint8_t *pv = pu + ((linesize * lines) / 4); /*y*/ int h = 0; for(h = 0; h < height; ++h) { py = frame + x + ((y + h) * linesize); int w = 0; for(w = 0; w < width; ++w) { *py++ = color->y; } } /*u v*/ for(h = 0; h < height/2; h++) /*every two lines*/ { pu = frame + (linesize * lines) + (int) floor(x/2) + (( (int) floor(y/2) + h) * (int) floor(linesize/2)); pv = pu + (int) floor((linesize * lines) / 4); int w = 0; for(w = 0; w < width/2; w++) /*every two rows*/ { *pu++ = color->u; *pv++ = color->v; } } } /* * plot a line in a yu12 frame (planar) * args: * frame - pointer to yu12 frame data * lines - number of lines in frame (height) * linesize - frame line size in pixels (width) * x - box top left x coordinate * y - box top left y coordinate * width - line width * color - line color * * asserts: * none * * returns: none */ static plot_line_yu12(uint8_t *frame, int lines, int linesize, int x, int y, int width, yuv_color_t *color) { uint8_t *py = frame; uint8_t *pu = frame + (linesize * lines); uint8_t *pv = pu + ((linesize * lines) / 4); int w = 0; /*y*/ py = frame + x + (y * linesize); for(w = 0; w < width; ++w) { *py++ = color->y; } /*u v*/ pu = frame + (linesize * lines) + (int) floor(x/2) + ((int) floor(y/2) * (int) floor(linesize/2)); pv = pu + (int) floor((linesize * lines) / 4); for(w = 0; w < width/2; w ++) /*every two rows*/ { *pu++ = color->u; *pv++ = color->v; } } /* * render a vu meter * args: * frame - pointer to yuyv frame data * width - frame width * height - frame height * vu_level - vu level values (array with 2 channels) * * asserts: * none * * returns: none */ void render_osd_vu_meter(uint8_t *frame, int width, int height, float vu_level[2]) { int bw = 2 * (width / (VU_BARS * 8)); /*make it at least two pixels*/ int bh = height / 24; int channel; for (channel = 0; channel < 2; ++channel) { if((render_get_osd_mask() & REND_OSD_VUMETER_MONO) != 0 && channel > 0) continue; /*if mono mode only render first channel*/ /*make sure we have a positive value (required by log10)*/ if(vu_level[channel] < 0) vu_level[channel] = -vu_level[channel]; /* Handle peak calculation and falloff */ if (vu_peak[channel] < vu_level[channel]) { vu_peak[channel] = vu_level[channel]; vu_peak_freeze[channel] = 30; } else if (vu_peak_freeze[channel] > 0) { vu_peak_freeze[channel]--; } else if (vu_peak[channel] > vu_level[channel]) { vu_peak[channel] -= (vu_peak[channel] - vu_level[channel]) / 10; } /*by default no bar is light */ float dBuLevel = - 4 * (VU_BARS - 1); float dBuPeak = - 4 * (VU_BARS - 1); if(vu_level[channel] > 0) dBuLevel = 10 * log10(vu_level[channel] / REFERENCE_LEVEL); if(vu_peak[channel] > 0) dBuPeak = 10 * log10(vu_peak[channel] / REFERENCE_LEVEL); /* draw the bars */ int peaked = 0; int box = 0; for (box = 0; box <= (VU_BARS - 1); ++box) { /* * The dB it takes to light the current box * step of 2 db between boxes */ float db = 2 * (box - (VU_BARS - 1)); /* start x coordinate for box */ int bx = box * (bw + 4) + (16); /* Start y coordinate for box (box top)*/ int by = channel * (bh + 4) + bh; yuv_color_t color; color.y = 127; color.u = 127; color.v = 127; /*green bar*/ if (db < -10) { color.y = 154; color.u = 72; color.v = 57; } else if (db < -2) /*yellow bar*/ { color.y = 203; color.u = 44; color.v = 142; } else /*red bar*/ { color.y = 107; color.u = 100; color.v = 212; } int light = dBuLevel > db; if (dBuPeak < db+1 && !peaked) { peaked = 1; light = 1; } if (light) { #ifdef USE_PLANAR_YUV plot_box_yu12(frame, height, width, bx, by, bw, bh, &color); #else plot_box_yuyv(frame, width, bx, by, bw, bh, &color); #endif } else if (bw > 0) /*draw single line*/ { #ifdef USE_PLANAR_YUV plot_line_yu12(frame, height, width, bx, by + (bh /2), bw, &color); #else plot_line_yuyv(frame, width, bx, by + (bh/2), bw, &color); #endif } } } } guvcview-2.0.2+debian/gview_render/render_sdl1.c000066400000000000000000000251121256377215300216320ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include "gview.h" #include "gviewrender.h" #include "render.h" extern int verbosity; static int desktop_w = 0; static int desktop_h = 0; static int bpp = 0; static SDL_Surface *pscreen = NULL; static SDL_Overlay *poverlay = NULL; static SDL_Rect drect; static Uint32 SDL_VIDEO_Flags = SDL_ANYFORMAT | SDL_RESIZABLE; static const SDL_VideoInfo *info; /* * initialize sdl video * args: * width - video width * height - video height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * none * * returns: pointer to SDL_Overlay */ static SDL_Overlay * video_init(int width, int height, int flags) { if(verbosity > 0) printf("RENDER: Initializing SDL1 render\n"); int video_w = width; int video_h = height; if (pscreen == NULL) //init SDL { char driver[128]; /*----------------------------- Test SDL capabilities ---------------------*/ if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) { fprintf(stderr, "RENDER: Couldn't initialize SDL: %s\n", SDL_GetError()); return NULL; } /*use hardware acceleration as default*/ if ( ! getenv("SDL_VIDEO_YUV_HWACCEL") ) putenv("SDL_VIDEO_YUV_HWACCEL=1"); if ( ! getenv("SDL_VIDEO_YUV_DIRECT") ) putenv("SDL_VIDEO_YUV_DIRECT=1"); if (SDL_VideoDriverName(driver, sizeof(driver)) && verbosity > 0) { printf("RENDER: Video driver: %s\n", driver); } info = SDL_GetVideoInfo(); if (info->wm_available && verbosity > 0) printf("RENDER: A window manager is available\n"); if (info->hw_available) { if (verbosity > 0) printf("RENDER: Hardware surfaces are available (%dK video memory)\n", info->video_mem); SDL_VIDEO_Flags |= SDL_HWSURFACE; SDL_VIDEO_Flags |= SDL_DOUBLEBUF; } else { SDL_VIDEO_Flags |= SDL_SWSURFACE; } if (info->blit_hw) { if (verbosity > 0) printf("RENDER: Copy blits between hardware surfaces are accelerated\n"); SDL_VIDEO_Flags |= SDL_ASYNCBLIT; } desktop_w = info->current_w; //get desktop width desktop_h = info->current_h; //get desktop height if(!desktop_w) desktop_w = 800; if(!desktop_h) desktop_h = 600; switch(flags) { case 2: /*maximize*/ video_w = desktop_w; video_h = desktop_h; break; case 1: /*fullscreen*/ SDL_VIDEO_Flags |= SDL_FULLSCREEN; break; case 0: default: break; } if (verbosity > 0) { if (info->blit_hw_CC) printf("Colorkey blits between hardware surfaces are accelerated\n"); if (info->blit_hw_A) printf("Alpha blits between hardware surfaces are accelerated\n"); if (info->blit_sw) printf("Copy blits from software surfaces to hardware surfaces are accelerated\n"); if (info->blit_sw_CC) printf("Colorkey blits from software surfaces to hardware surfaces are accelerated\n"); if (info->blit_sw_A) printf("Alpha blits from software surfaces to hardware surfaces are accelerated\n"); if (info->blit_fill) printf("Color fills on hardware surfaces are accelerated\n"); } SDL_WM_SetCaption("Guvcview Video", NULL); /* enable key repeat */ SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL); } /*------------------------------ SDL init video ---------------------*/ if(verbosity > 0) { printf("RENDER: Desktop resolution = %ix%i\n", desktop_w, desktop_h); printf("RENDER: Checking video mode %ix%i@32bpp\n", video_w, video_h); } bpp = SDL_VideoModeOK( video_w, video_h, 32, SDL_VIDEO_Flags); if(!bpp) { fprintf(stderr, "RENDER: resolution not available\n"); /*resize video mode*/ if ((video_w > desktop_w) || (video_h > desktop_h)) { video_w = desktop_w; /*use desktop video resolution*/ video_h = desktop_h; } else { video_w = 800; video_h = 600; } fprintf(stderr, "RENDER: resizing to %ix%i\n", video_w, video_h); } else { if ((bpp != 32) && verbosity > 0) printf("RENDER: recomended color depth = %i\n", bpp); } if(verbosity > 0) printf("RENDER: setting video mode %ix%i@%ibpp\n", width, height, bpp); pscreen = SDL_SetVideoMode( video_w, video_h, bpp, SDL_VIDEO_Flags); if(pscreen == NULL) { return (NULL); } if(verbosity > 0) printf("RENDER: creating an overlay\n"); /*use requested resolution for overlay even if not available as video mode*/ SDL_Overlay* overlay=NULL; overlay = SDL_CreateYUVOverlay(width, height, #ifdef USE_PLANAR_YUV SDL_IYUV_OVERLAY, /*yuv420p*/ #else SDL_YUY2_OVERLAY, /*yuv422*/ #endif pscreen); SDL_ShowCursor(SDL_DISABLE); return (overlay); } /* * init sdl1 render * args: * width - overlay width * height - overlay height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * * returns: error code (0 ok) */ int init_render_sdl1(int width, int height, int flags) { poverlay = video_init(width, height, flags); if(poverlay == NULL) { fprintf(stderr, "RENDER: Couldn't create yuv overlay (try disabling hardware accelaration)\n"); return -1; } assert(pscreen != NULL); drect.x = 0; drect.y = 0; drect.w = pscreen->w; drect.h = pscreen->h; return 0; } /* * render a frame * args: * frame - pointer to frame data (yuyv format) * width - frame width * height - frame height * * asserts: * poverlay is not nul * frame is not null * * returns: error code */ int render_sdl1_frame(uint8_t *frame, int width, int height) { /*asserts*/ assert(poverlay != NULL); assert(frame != NULL); float vu_level[2]; render_get_vu_level(vu_level); uint8_t *p = (uint8_t *) poverlay->pixels[0]; #ifdef USE_PLANAR_YUV int size = width * height * 3/2; /* for IYUV */ #else int size = width * height * 2; /* 2 bytes per pixel for yuyv*/ #endif SDL_LockYUVOverlay(poverlay); memcpy(p, frame, size); /*osd vu meter*/ if(((render_get_osd_mask() & (REND_OSD_VUMETER_MONO | REND_OSD_VUMETER_STEREO))) != 0) render_osd_vu_meter(p, width, height, vu_level); /*osd crosshair*/ if(((render_get_osd_mask() & REND_OSD_CROSSHAIR)) != 0) render_osd_crosshair(texture_pixels, width, height); SDL_UnlockYUVOverlay(poverlay); SDL_DisplayYUVOverlay(poverlay, &drect); } /* * set sdl1 render caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void set_render_sdl1_caption(const char* caption) { SDL_WM_SetCaption(caption, NULL); } /* * dispatch sdl1 render events * args: * none * * asserts: * none * * returns: none */ void render_sdl1_dispatch_events() { SDL_Event event; /* Poll for events */ while( SDL_PollEvent(&event) ) { if(event.type==SDL_KEYDOWN) { switch( event.key.keysym.sym ) { /* Keyboard event */ /* Pass the event data onto PrintKeyInfo() */ case SDLK_ESCAPE: render_call_event_callback(EV_QUIT); break; case SDLK_UP: render_call_event_callback(EV_KEY_UP); break; case SDLK_DOWN: render_call_event_callback(EV_KEY_DOWN); break; case SDLK_RIGHT: render_call_event_callback(EV_KEY_RIGHT); break; case SDLK_LEFT: render_call_event_callback(EV_KEY_LEFT); break; case SDLK_SPACE: render_call_event_callback(EV_KEY_SPACE); break; case SDLK_i: render_call_event_callback(EV_KEY_I); break; case SDLK_v: render_call_event_callback(EV_KEY_V); break; default: break; } switch( event.key.keysym.scancode ) { case 220: /*webcam button*/ break; } } if(event.type==SDL_VIDEORESIZE) { pscreen = SDL_SetVideoMode( event.resize.w, event.resize.h, bpp, SDL_VIDEO_Flags); drect.w = event.resize.w; drect.h = event.resize.h; } if(event.type==SDL_QUIT) { if(verbosity > 0) printf("RENDER: (event) quit\n"); render_call_event_callback(EV_QUIT); } } } /* * clean sdl1 render data * args: * none * * asserts: * none * * returns: none */ void render_sdl1_clean() { if(poverlay) SDL_FreeYUVOverlay(poverlay); poverlay = NULL; SDL_Quit(); pscreen = NULL; } guvcview-2.0.2+debian/gview_render/render_sdl1.h000066400000000000000000000057111256377215300216420ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /* * init sdl1 render * args: * width - overlay width * height - overlay height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * * returns: error code (0 ok) */ int init_render_sdl1(int width, int height, int flags); /* * render a frame * args: * frame - pointer to frame data (yuyv format) * width - frame width * height - frame height * * asserts: * poverlay is not nul * frame is not null * * returns: error code */ int render_sdl1_frame(uint8_t *frame, int width, int height); /* * set sdl1 render caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void set_render_sdl1_caption(const char* caption); /* * dispatch sdl1 render events * args: * none * * asserts: * none * * returns: none */ void render_sdl1_dispatch_events(); /* * clean sdl1 render data * args: * none * * asserts: * none * * returns: none */ void render_sdl1_clean(); guvcview-2.0.2+debian/gview_render/render_sdl2.c000066400000000000000000000267331256377215300216450ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include "gview.h" #include "gviewrender.h" #include "render.h" #include "render_sdl2.h" #include "../config.h" extern int verbosity; SDL_DisplayMode display_mode; static SDL_Window* sdl_window = NULL; static SDL_Texture* rending_texture = NULL; static SDL_Renderer* main_renderer = NULL; /* * initialize sdl video * args: * width - video width * height - video height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * none * * returns: error code */ static int video_init(int width, int height, int flags) { int w = width; int h = height; int32_t my_flags = SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE; switch(flags) { case 2: my_flags |= SDL_WINDOW_MAXIMIZED; break; case 1: my_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; break; case 0: default: break; } if(verbosity > 0) printf("RENDER: Initializing SDL2 render\n"); if (sdl_window == NULL) /*init SDL*/ { if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) { fprintf(stderr, "RENDER: Couldn't initialize SDL2: %s\n", SDL_GetError()); return -1; } SDL_SetHint("SDL_HINT_RENDER_SCALE_QUALITY", "1"); sdl_window = SDL_CreateWindow( "Guvcview Video", // window title SDL_WINDOWPOS_UNDEFINED, // initial x position SDL_WINDOWPOS_UNDEFINED, // initial y position w, // width, in pixels h, // height, in pixels my_flags ); if(sdl_window == NULL) { fprintf(stderr, "RENDER: (SDL2) Couldn't open window: %s\n", SDL_GetError()); render_sdl2_clean(); return -2; } int display_index = SDL_GetWindowDisplayIndex(sdl_window); int err = SDL_GetDesktopDisplayMode(display_index, &display_mode); if(!err) { if(verbosity > 0) printf("RENDER: video display %i -> %dx%dpx @ %dhz\n", display_index, display_mode.w, display_mode.h, display_mode.refresh_rate); } else fprintf(stderr, "RENDER: Couldn't determine display mode for video display %i\n", display_index); if(w > display_mode.w) w = display_mode.w; if(h > display_mode.h) h = display_mode.h; if(verbosity > 0) printf("RENDER: setting window size to %ix%i\n", w, h); SDL_SetWindowSize(sdl_window, w, h); } if(verbosity > 2) { /* Allocate a renderer info struct*/ SDL_RendererInfo *rend_info = (SDL_RendererInfo *) malloc(sizeof(SDL_RendererInfo)); if (!rend_info) { fprintf(stderr, "RENDER: Couldn't allocate memory for the renderer info data structure\n"); render_sdl2_clean(); return -5; } /* Print the list of the available renderers*/ printf("\nRENDER: Available SDL2 rendering drivers:\n"); int i = 0; for (i = 0; i < SDL_GetNumRenderDrivers(); i++) { if (SDL_GetRenderDriverInfo(i, rend_info) < 0) { fprintf(stderr, " Couldn't get SDL2 render driver information: %s\n", SDL_GetError()); } else { printf(" %2d: %s\n", i, rend_info->name); printf(" SDL_RENDERER_TARGETTEXTURE [%c]\n", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' '); printf(" SDL_RENDERER_SOFTWARE [%c]\n", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' '); printf(" SDL_RENDERER_ACCELERATED [%c]\n", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' '); printf(" SDL_RENDERER_PRESENTVSYNC [%c]\n", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' '); } } free(rend_info); } main_renderer = SDL_CreateRenderer(sdl_window, -1, SDL_RENDERER_TARGETTEXTURE | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED); if(main_renderer == NULL) { fprintf(stderr, "RENDER: (SDL2) Couldn't get a accelerated renderer: %s\n", SDL_GetError()); fprintf(stderr, "RENDER: (SDL2) trying with a software renderer\n"); main_renderer = SDL_CreateRenderer(sdl_window, -1, SDL_RENDERER_TARGETTEXTURE | SDL_RENDERER_SOFTWARE); if(main_renderer == NULL) { fprintf(stderr, "RENDER: (SDL2) Couldn't get a software renderer: %s\n", SDL_GetError()); fprintf(stderr, "RENDER: (SDL2) giving up...\n"); render_sdl2_clean(); return -3; } } if(verbosity > 2) { /* Allocate a renderer info struct*/ SDL_RendererInfo *rend_info = (SDL_RendererInfo *) malloc(sizeof(SDL_RendererInfo)); if (!rend_info) { fprintf(stderr, "RENDER: Couldn't allocate memory for the renderer info data structure\n"); render_sdl2_clean(); return -5; } /* Print the name of the current rendering driver */ if (SDL_GetRendererInfo(main_renderer, rend_info) < 0) { fprintf(stderr, "Couldn't get SDL2 rendering driver information: %s\n", SDL_GetError()); } printf("RENDER: rendering driver in use: %s\n", rend_info->name); printf(" SDL_RENDERER_TARGETTEXTURE [%c]\n", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' '); printf(" SDL_RENDERER_SOFTWARE [%c]\n", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' '); printf(" SDL_RENDERER_ACCELERATED [%c]\n", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' '); printf(" SDL_RENDERER_PRESENTVSYNC [%c]\n", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' '); free(rend_info); } SDL_RenderSetLogicalSize(main_renderer, width, height); SDL_SetRenderDrawBlendMode(main_renderer, SDL_BLENDMODE_NONE); rending_texture = SDL_CreateTexture(main_renderer, #ifdef USE_PLANAR_YUV SDL_PIXELFORMAT_IYUV, /*yuv420p*/ #else SDL_PIXELFORMAT_YUY2, /*yuv422*/ #endif SDL_TEXTUREACCESS_STREAMING, width, height); if(rending_texture == NULL) { fprintf(stderr, "RENDER: (SDL2) Couldn't get a texture for rending: %s\n", SDL_GetError()); render_sdl2_clean(); return -4; } return 0; } /* * init sdl2 render * args: * width - overlay width * height - overlay height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * * returns: error code (0 ok) */ int init_render_sdl2(int width, int height, int flags) { int err = video_init(width, height, flags); if(err) { fprintf(stderr, "RENDER: Couldn't init the SDL2 rendering engine\n"); return -1; } assert(rending_texture != NULL); return 0; } /* * render a frame * args: * frame - pointer to frame data (yuyv format) * width - frame width * height - frame height * * asserts: * poverlay is not nul * frame is not null * * returns: error code */ int render_sdl2_frame(uint8_t *frame, int width, int height) { /*asserts*/ assert(rending_texture != NULL); assert(frame != NULL); float vu_level[2]; render_get_vu_level(vu_level); #ifdef USE_PLANAR_YUV int size = width * height * 3/2; /* for IYUV */ #else int size = width * height * 2; /* 2 bytes per pixel for YUYV */ #endif void* texture_pixels; int pitch; SDL_SetRenderDrawColor(main_renderer, 0, 0, 0, 255); /*black*/ SDL_RenderClear(main_renderer); if (SDL_LockTexture(rending_texture, NULL, &texture_pixels, &pitch)) { fprintf(stderr, "RENDER: couldn't lock texture to write\n"); return -1; } memcpy(texture_pixels, frame, size); /*osd vu meter*/ if(((render_get_osd_mask() & (REND_OSD_VUMETER_MONO | REND_OSD_VUMETER_STEREO))) != 0) render_osd_vu_meter(texture_pixels, width, height, vu_level); /*osd crosshair*/ if(((render_get_osd_mask() & REND_OSD_CROSSHAIR)) != 0) render_osd_crosshair(texture_pixels, width, height); SDL_UnlockTexture(rending_texture); SDL_RenderCopy(main_renderer, rending_texture, NULL, NULL); SDL_RenderPresent(main_renderer); } /* * set sdl2 render caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void set_render_sdl2_caption(const char* caption) { SDL_SetWindowTitle(sdl_window, caption); } /* * dispatch sdl2 render events * args: * none * * asserts: * none * * returns: none */ void render_sdl2_dispatch_events() { SDL_Event event; while( SDL_PollEvent(&event) ) { if(event.type==SDL_KEYDOWN) { switch( event.key.keysym.sym ) { case SDLK_ESCAPE: render_call_event_callback(EV_QUIT); break; case SDLK_UP: render_call_event_callback(EV_KEY_UP); break; case SDLK_DOWN: render_call_event_callback(EV_KEY_DOWN); break; case SDLK_RIGHT: render_call_event_callback(EV_KEY_RIGHT); break; case SDLK_LEFT: render_call_event_callback(EV_KEY_LEFT); break; case SDLK_SPACE: render_call_event_callback(EV_KEY_SPACE); break; case SDLK_i: render_call_event_callback(EV_KEY_I); break; case SDLK_v: render_call_event_callback(EV_KEY_V); break; default: break; } switch( event.key.keysym.scancode ) { case 220: break; } } if(event.type==SDL_QUIT) { if(verbosity > 0) printf("RENDER: (event) quit\n"); render_call_event_callback(EV_QUIT); } } } /* * clean sdl2 render data * args: * none * * asserts: * none * * returns: none */ void render_sdl2_clean() { if(rending_texture) SDL_DestroyTexture(rending_texture); rending_texture = NULL; if(main_renderer) SDL_DestroyRenderer(main_renderer); main_renderer = NULL; if(sdl_window) SDL_DestroyWindow(sdl_window); sdl_window = NULL; SDL_Quit(); } guvcview-2.0.2+debian/gview_render/render_sdl2.h000066400000000000000000000057111256377215300216430ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # Flemming Frandsen # # Add VU meter OSD # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /* * init sdl2 render * args: * width - overlay width * height - overlay height * flags - window flags: * 0- none * 1- fullscreen * 2- maximized * * asserts: * * returns: error code (0 ok) */ int init_render_sdl2(int width, int height, int flags); /* * render a frame * args: * frame - pointer to frame data (yuyv format) * width - frame width * height - frame height * * asserts: * poverlay is not nul * frame is not null * * returns: error code */ int render_sdl2_frame(uint8_t *frame, int width, int height); /* * set sdl1 render caption * args: * caption - string with render window caption * * asserts: * none * * returns: none */ void set_render_sdl2_caption(const char* caption); /* * dispatch sdl1 render events * args: * none * * asserts: * none * * returns: none */ void render_sdl2_dispatch_events(); /* * clean sdl1 render data * args: * none * * asserts: * none * * returns: none */ void render_sdl2_clean(); guvcview-2.0.2+debian/gview_v4l2core/000077500000000000000000000000001256377215300174445ustar00rootroot00000000000000guvcview-2.0.2+debian/gview_v4l2core/Makefile.am000077500000000000000000000022351256377215300215050ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # Public headers h_sources = gviewv4l2core.h \ $(top_srcdir)/includes/gview.h c_sources = v4l2_core.c \ v4l2_formats.c \ v4l2_controls.c \ v4l2_devices.c \ v4l2_xu_ctrls.c \ uvc_h264.c \ core_time.c \ frame_decoder.c \ colorspaces.c \ jpeg_decoder.c \ soft_autofocus.c \ dct.c \ control_profile.c \ save_image.c \ save_image_jpeg.c \ save_image_bmp.c \ save_image_png.c #Install the headers in a versioned directory - guvcvideo-x/libgviewv4l2core: library_includedir=$(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWV4L2CORE_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES= libgviewv4l2core.la libgviewv4l2core_la_SOURCES= $(h_sources) $(c_sources) libgviewv4l2core_la_CFLAGS = $(GVIEWV4L2CORE_CFLAGS) \ $(PTHREAD_CFLAGS) \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewv4l2core_la_LIBADD= $(GVIEWV4L2CORE_LIBS) $(PTHREAD_LIBS) -lm libgviewv4l2core_la_LDFLAGS= -version-info $(GVIEWV4L2CORE_LIBRARY_VERSION) -release $(GVIEWV4L2CORE_API_VERSION) guvcview-2.0.2+debian/gview_v4l2core/Makefile.in000066400000000000000000001345101256377215300215150ustar00rootroot00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = gview_v4l2core DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(library_include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(library_includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libgviewv4l2core_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am__objects_1 = am__objects_2 = libgviewv4l2core_la-v4l2_core.lo \ libgviewv4l2core_la-v4l2_formats.lo \ libgviewv4l2core_la-v4l2_controls.lo \ libgviewv4l2core_la-v4l2_devices.lo \ libgviewv4l2core_la-v4l2_xu_ctrls.lo \ libgviewv4l2core_la-uvc_h264.lo \ libgviewv4l2core_la-core_time.lo \ libgviewv4l2core_la-frame_decoder.lo \ libgviewv4l2core_la-colorspaces.lo \ libgviewv4l2core_la-jpeg_decoder.lo \ libgviewv4l2core_la-soft_autofocus.lo \ libgviewv4l2core_la-dct.lo \ libgviewv4l2core_la-control_profile.lo \ libgviewv4l2core_la-save_image.lo \ libgviewv4l2core_la-save_image_jpeg.lo \ libgviewv4l2core_la-save_image_bmp.lo \ libgviewv4l2core_la-save_image_png.lo am_libgviewv4l2core_la_OBJECTS = $(am__objects_1) $(am__objects_2) libgviewv4l2core_la_OBJECTS = $(am_libgviewv4l2core_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgviewv4l2core_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) \ $(libgviewv4l2core_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgviewv4l2core_la_SOURCES) DIST_SOURCES = $(libgviewv4l2core_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(library_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GETTEXT_PACKAGE_V4L2CORE = @GETTEXT_PACKAGE_V4L2CORE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ GUVCVIEW_CFLAGS = @GUVCVIEW_CFLAGS@ GUVCVIEW_LIBS = @GUVCVIEW_LIBS@ GVIEWAUDIO_API_VERSION = @GVIEWAUDIO_API_VERSION@ GVIEWAUDIO_CFLAGS = @GVIEWAUDIO_CFLAGS@ GVIEWAUDIO_LD_NAME = @GVIEWAUDIO_LD_NAME@ GVIEWAUDIO_LIBRARY_NAME = @GVIEWAUDIO_LIBRARY_NAME@ GVIEWAUDIO_LIBRARY_VERSION = @GVIEWAUDIO_LIBRARY_VERSION@ GVIEWAUDIO_LIBS = @GVIEWAUDIO_LIBS@ GVIEWENCODER_API_VERSION = @GVIEWENCODER_API_VERSION@ GVIEWENCODER_CFLAGS = @GVIEWENCODER_CFLAGS@ GVIEWENCODER_LD_NAME = @GVIEWENCODER_LD_NAME@ GVIEWENCODER_LIBRARY_NAME = @GVIEWENCODER_LIBRARY_NAME@ GVIEWENCODER_LIBRARY_VERSION = @GVIEWENCODER_LIBRARY_VERSION@ GVIEWENCODER_LIBS = @GVIEWENCODER_LIBS@ GVIEWRENDER_API_VERSION = @GVIEWRENDER_API_VERSION@ GVIEWRENDER_CFLAGS = @GVIEWRENDER_CFLAGS@ GVIEWRENDER_LD_NAME = @GVIEWRENDER_LD_NAME@ GVIEWRENDER_LIBRARY_NAME = @GVIEWRENDER_LIBRARY_NAME@ GVIEWRENDER_LIBRARY_VERSION = @GVIEWRENDER_LIBRARY_VERSION@ GVIEWRENDER_LIBS = @GVIEWRENDER_LIBS@ GVIEWV4L2CORE_API_VERSION = @GVIEWV4L2CORE_API_VERSION@ GVIEWV4L2CORE_CFLAGS = @GVIEWV4L2CORE_CFLAGS@ GVIEWV4L2CORE_LD_NAME = @GVIEWV4L2CORE_LD_NAME@ GVIEWV4L2CORE_LIBRARY_NAME = @GVIEWV4L2CORE_LIBRARY_NAME@ GVIEWV4L2CORE_LIBRARY_VERSION = @GVIEWV4L2CORE_LIBRARY_VERSION@ GVIEWV4L2CORE_LIBS = @GVIEWV4L2CORE_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_RELEASE = @PACKAGE_RELEASE@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Public headers h_sources = gviewv4l2core.h \ $(top_srcdir)/includes/gview.h c_sources = v4l2_core.c \ v4l2_formats.c \ v4l2_controls.c \ v4l2_devices.c \ v4l2_xu_ctrls.c \ uvc_h264.c \ core_time.c \ frame_decoder.c \ colorspaces.c \ jpeg_decoder.c \ soft_autofocus.c \ dct.c \ control_profile.c \ save_image.c \ save_image_jpeg.c \ save_image_bmp.c \ save_image_png.c #Install the headers in a versioned directory - guvcvideo-x/libgviewv4l2core: library_includedir = $(includedir)/$(PACKAGE)-$(PACKAGE_RELEASE)/$(GVIEWV4L2CORE_LIBRARY_NAME) library_include_HEADERS = $(h_sources) #AM_CFLAGS = lib_LTLIBRARIES = libgviewv4l2core.la libgviewv4l2core_la_SOURCES = $(h_sources) $(c_sources) libgviewv4l2core_la_CFLAGS = $(GVIEWV4L2CORE_CFLAGS) \ $(PTHREAD_CFLAGS) \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -I$(top_srcdir) \ -I$(top_srcdir)/includes libgviewv4l2core_la_LIBADD = $(GVIEWV4L2CORE_LIBS) $(PTHREAD_LIBS) -lm libgviewv4l2core_la_LDFLAGS = -version-info $(GVIEWV4L2CORE_LIBRARY_VERSION) -release $(GVIEWV4L2CORE_API_VERSION) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gview_v4l2core/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign gview_v4l2core/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgviewv4l2core.la: $(libgviewv4l2core_la_OBJECTS) $(libgviewv4l2core_la_DEPENDENCIES) $(EXTRA_libgviewv4l2core_la_DEPENDENCIES) $(AM_V_CCLD)$(libgviewv4l2core_la_LINK) -rpath $(libdir) $(libgviewv4l2core_la_OBJECTS) $(libgviewv4l2core_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-colorspaces.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-control_profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-core_time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-dct.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-frame_decoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-save_image_png.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-uvc_h264.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgviewv4l2core_la-v4l2_core.lo: v4l2_core.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_core.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Tpo -c -o libgviewv4l2core_la-v4l2_core.lo `test -f 'v4l2_core.c' || echo '$(srcdir)/'`v4l2_core.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_core.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_core.c' object='libgviewv4l2core_la-v4l2_core.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_core.lo `test -f 'v4l2_core.c' || echo '$(srcdir)/'`v4l2_core.c libgviewv4l2core_la-v4l2_formats.lo: v4l2_formats.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_formats.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Tpo -c -o libgviewv4l2core_la-v4l2_formats.lo `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_formats.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_formats.c' object='libgviewv4l2core_la-v4l2_formats.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_formats.lo `test -f 'v4l2_formats.c' || echo '$(srcdir)/'`v4l2_formats.c libgviewv4l2core_la-v4l2_controls.lo: v4l2_controls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_controls.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Tpo -c -o libgviewv4l2core_la-v4l2_controls.lo `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_controls.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_controls.c' object='libgviewv4l2core_la-v4l2_controls.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_controls.lo `test -f 'v4l2_controls.c' || echo '$(srcdir)/'`v4l2_controls.c libgviewv4l2core_la-v4l2_devices.lo: v4l2_devices.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_devices.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Tpo -c -o libgviewv4l2core_la-v4l2_devices.lo `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_devices.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_devices.c' object='libgviewv4l2core_la-v4l2_devices.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_devices.lo `test -f 'v4l2_devices.c' || echo '$(srcdir)/'`v4l2_devices.c libgviewv4l2core_la-v4l2_xu_ctrls.lo: v4l2_xu_ctrls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-v4l2_xu_ctrls.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Tpo -c -o libgviewv4l2core_la-v4l2_xu_ctrls.lo `test -f 'v4l2_xu_ctrls.c' || echo '$(srcdir)/'`v4l2_xu_ctrls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Tpo $(DEPDIR)/libgviewv4l2core_la-v4l2_xu_ctrls.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_xu_ctrls.c' object='libgviewv4l2core_la-v4l2_xu_ctrls.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-v4l2_xu_ctrls.lo `test -f 'v4l2_xu_ctrls.c' || echo '$(srcdir)/'`v4l2_xu_ctrls.c libgviewv4l2core_la-uvc_h264.lo: uvc_h264.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-uvc_h264.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Tpo -c -o libgviewv4l2core_la-uvc_h264.lo `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Tpo $(DEPDIR)/libgviewv4l2core_la-uvc_h264.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uvc_h264.c' object='libgviewv4l2core_la-uvc_h264.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-uvc_h264.lo `test -f 'uvc_h264.c' || echo '$(srcdir)/'`uvc_h264.c libgviewv4l2core_la-core_time.lo: core_time.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-core_time.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-core_time.Tpo -c -o libgviewv4l2core_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-core_time.Tpo $(DEPDIR)/libgviewv4l2core_la-core_time.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core_time.c' object='libgviewv4l2core_la-core_time.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-core_time.lo `test -f 'core_time.c' || echo '$(srcdir)/'`core_time.c libgviewv4l2core_la-frame_decoder.lo: frame_decoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-frame_decoder.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Tpo -c -o libgviewv4l2core_la-frame_decoder.lo `test -f 'frame_decoder.c' || echo '$(srcdir)/'`frame_decoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Tpo $(DEPDIR)/libgviewv4l2core_la-frame_decoder.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='frame_decoder.c' object='libgviewv4l2core_la-frame_decoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-frame_decoder.lo `test -f 'frame_decoder.c' || echo '$(srcdir)/'`frame_decoder.c libgviewv4l2core_la-colorspaces.lo: colorspaces.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-colorspaces.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-colorspaces.Tpo -c -o libgviewv4l2core_la-colorspaces.lo `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-colorspaces.Tpo $(DEPDIR)/libgviewv4l2core_la-colorspaces.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorspaces.c' object='libgviewv4l2core_la-colorspaces.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-colorspaces.lo `test -f 'colorspaces.c' || echo '$(srcdir)/'`colorspaces.c libgviewv4l2core_la-jpeg_decoder.lo: jpeg_decoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-jpeg_decoder.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Tpo -c -o libgviewv4l2core_la-jpeg_decoder.lo `test -f 'jpeg_decoder.c' || echo '$(srcdir)/'`jpeg_decoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Tpo $(DEPDIR)/libgviewv4l2core_la-jpeg_decoder.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jpeg_decoder.c' object='libgviewv4l2core_la-jpeg_decoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-jpeg_decoder.lo `test -f 'jpeg_decoder.c' || echo '$(srcdir)/'`jpeg_decoder.c libgviewv4l2core_la-soft_autofocus.lo: soft_autofocus.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-soft_autofocus.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Tpo -c -o libgviewv4l2core_la-soft_autofocus.lo `test -f 'soft_autofocus.c' || echo '$(srcdir)/'`soft_autofocus.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Tpo $(DEPDIR)/libgviewv4l2core_la-soft_autofocus.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='soft_autofocus.c' object='libgviewv4l2core_la-soft_autofocus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-soft_autofocus.lo `test -f 'soft_autofocus.c' || echo '$(srcdir)/'`soft_autofocus.c libgviewv4l2core_la-dct.lo: dct.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-dct.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-dct.Tpo -c -o libgviewv4l2core_la-dct.lo `test -f 'dct.c' || echo '$(srcdir)/'`dct.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-dct.Tpo $(DEPDIR)/libgviewv4l2core_la-dct.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dct.c' object='libgviewv4l2core_la-dct.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-dct.lo `test -f 'dct.c' || echo '$(srcdir)/'`dct.c libgviewv4l2core_la-control_profile.lo: control_profile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-control_profile.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-control_profile.Tpo -c -o libgviewv4l2core_la-control_profile.lo `test -f 'control_profile.c' || echo '$(srcdir)/'`control_profile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-control_profile.Tpo $(DEPDIR)/libgviewv4l2core_la-control_profile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='control_profile.c' object='libgviewv4l2core_la-control_profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-control_profile.lo `test -f 'control_profile.c' || echo '$(srcdir)/'`control_profile.c libgviewv4l2core_la-save_image.lo: save_image.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image.Tpo -c -o libgviewv4l2core_la-save_image.lo `test -f 'save_image.c' || echo '$(srcdir)/'`save_image.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image.c' object='libgviewv4l2core_la-save_image.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image.lo `test -f 'save_image.c' || echo '$(srcdir)/'`save_image.c libgviewv4l2core_la-save_image_jpeg.lo: save_image_jpeg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_jpeg.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Tpo -c -o libgviewv4l2core_la-save_image_jpeg.lo `test -f 'save_image_jpeg.c' || echo '$(srcdir)/'`save_image_jpeg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_jpeg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_jpeg.c' object='libgviewv4l2core_la-save_image_jpeg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_jpeg.lo `test -f 'save_image_jpeg.c' || echo '$(srcdir)/'`save_image_jpeg.c libgviewv4l2core_la-save_image_bmp.lo: save_image_bmp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_bmp.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Tpo -c -o libgviewv4l2core_la-save_image_bmp.lo `test -f 'save_image_bmp.c' || echo '$(srcdir)/'`save_image_bmp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_bmp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_bmp.c' object='libgviewv4l2core_la-save_image_bmp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_bmp.lo `test -f 'save_image_bmp.c' || echo '$(srcdir)/'`save_image_bmp.c libgviewv4l2core_la-save_image_png.lo: save_image_png.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -MT libgviewv4l2core_la-save_image_png.lo -MD -MP -MF $(DEPDIR)/libgviewv4l2core_la-save_image_png.Tpo -c -o libgviewv4l2core_la-save_image_png.lo `test -f 'save_image_png.c' || echo '$(srcdir)/'`save_image_png.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgviewv4l2core_la-save_image_png.Tpo $(DEPDIR)/libgviewv4l2core_la-save_image_png.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save_image_png.c' object='libgviewv4l2core_la-save_image_png.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgviewv4l2core_la_CFLAGS) $(CFLAGS) -c -o libgviewv4l2core_la-save_image_png.lo `test -f 'save_image_png.c' || echo '$(srcdir)/'`save_image_png.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-library_includeHEADERS: $(library_include_HEADERS) @$(NORMAL_INSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \ done uninstall-library_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-library_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES \ install-library_includeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-library_includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/gview_v4l2core/colorspaces.c000066400000000000000000002021021256377215300221220ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include "gview.h" #include "../config.h" extern int verbosity; /*------------------------------- Color space conversions --------------------*/ /*---------------- raw bayer -------------*/ /* raw bayer functions * from libv4l bayer.c, (C) 2008 Hans de Goede * Note: original bayer_to_bgr24 code from : * 1394-Based Digital Camera Control Library * * Bayer pattern decoding functions * Written by Damien Douxchamps and Frederic Devernay * */ static void convert_border_bayer_line_to_bgr24( uint8_t* bayer, uint8_t* adjacent_bayer, uint8_t *bgr, int width, uint8_t start_with_green, uint8_t blue_line) { int t0, t1; if (start_with_green) { /* First pixel */ if (blue_line) { *bgr++ = bayer[1]; *bgr++ = bayer[0]; *bgr++ = adjacent_bayer[0]; } else { *bgr++ = adjacent_bayer[0]; *bgr++ = bayer[0]; *bgr++ = bayer[1]; } /* Second pixel */ t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; if (blue_line) { *bgr++ = bayer[1]; *bgr++ = t0; *bgr++ = t1; } else { *bgr++ = t1; *bgr++ = t0; *bgr++ = bayer[1]; } bayer++; adjacent_bayer++; width -= 2; } else { /* First pixel */ t0 = (bayer[1] + adjacent_bayer[0] + 1) >> 1; if (blue_line) { *bgr++ = bayer[0]; *bgr++ = t0; *bgr++ = adjacent_bayer[1]; } else { *bgr++ = adjacent_bayer[1]; *bgr++ = t0; *bgr++ = bayer[0]; } width--; } if (blue_line) { for ( ; width > 2; width -= 2) { t0 = (bayer[0] + bayer[2] + 1) >> 1; *bgr++ = t0; *bgr++ = bayer[1]; *bgr++ = adjacent_bayer[1]; bayer++; adjacent_bayer++; t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; *bgr++ = bayer[1]; *bgr++ = t0; *bgr++ = t1; bayer++; adjacent_bayer++; } } else { for ( ; width > 2; width -= 2) { t0 = (bayer[0] + bayer[2] + 1) >> 1; *bgr++ = adjacent_bayer[1]; *bgr++ = bayer[1]; *bgr++ = t0; bayer++; adjacent_bayer++; t0 = (bayer[0] + bayer[2] + adjacent_bayer[1] + 1) / 3; t1 = (adjacent_bayer[0] + adjacent_bayer[2] + 1) >> 1; *bgr++ = t1; *bgr++ = t0; *bgr++ = bayer[1]; bayer++; adjacent_bayer++; } } if (width == 2) { /* Second to last pixel */ t0 = (bayer[0] + bayer[2] + 1) >> 1; if (blue_line) { *bgr++ = t0; *bgr++ = bayer[1]; *bgr++ = adjacent_bayer[1]; } else { *bgr++ = adjacent_bayer[1]; *bgr++ = bayer[1]; *bgr++ = t0; } /* Last pixel */ t0 = (bayer[1] + adjacent_bayer[2] + 1) >> 1; if (blue_line) { *bgr++ = bayer[2]; *bgr++ = t0; *bgr++ = adjacent_bayer[1]; } else { *bgr++ = adjacent_bayer[1]; *bgr++ = t0; *bgr++ = bayer[2]; } } else { /* Last pixel */ if (blue_line) { *bgr++ = bayer[0]; *bgr++ = bayer[1]; *bgr++ = adjacent_bayer[1]; } else { *bgr++ = adjacent_bayer[1]; *bgr++ = bayer[1]; *bgr++ = bayer[0]; } } } /* * From libdc1394, which on turn was based on OpenCV's Bayer decoding */ static void bayer_to_rgbbgr24(uint8_t *bayer, uint8_t *bgr, int width, int height, uint8_t start_with_green, uint8_t blue_line) { /* render the first line */ convert_border_bayer_line_to_bgr24(bayer, bayer + width, bgr, width, start_with_green, blue_line); bgr += width * 3; /* reduce height by 2 because of the special case top/bottom line */ for (height -= 2; height; height--) { int t0, t1; /* (width - 2) because of the border */ uint8_t *bayerEnd = bayer + (width - 2); if (start_with_green) { /* OpenCV has a bug in the next line, which was t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; */ t0 = (bayer[1] + bayer[width * 2 + 1] + 1) >> 1; /* Write first pixel */ t1 = (bayer[0] + bayer[width * 2] + bayer[width + 1] + 1) / 3; if (blue_line) { *bgr++ = t0; *bgr++ = t1; *bgr++ = bayer[width]; } else { *bgr++ = bayer[width]; *bgr++ = t1; *bgr++ = t0; } /* Write second pixel */ t1 = (bayer[width] + bayer[width + 2] + 1) >> 1; if (blue_line) { *bgr++ = t0; *bgr++ = bayer[width + 1]; *bgr++ = t1; } else { *bgr++ = t1; *bgr++ = bayer[width + 1]; *bgr++ = t0; } bayer++; } else { /* Write first pixel */ t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; if (blue_line) { *bgr++ = t0; *bgr++ = bayer[width]; *bgr++ = bayer[width + 1]; } else { *bgr++ = bayer[width + 1]; *bgr++ = bayer[width]; *bgr++ = t0; } } if (blue_line) { for (; bayer <= bayerEnd - 2; bayer += 2) { t0 = (bayer[0] + bayer[2] + bayer[width * 2] + bayer[width * 2 + 2] + 2) >> 2; t1 = (bayer[1] + bayer[width] + bayer[width + 2] + bayer[width * 2 + 1] + 2) >> 2; *bgr++ = t0; *bgr++ = t1; *bgr++ = bayer[width + 1]; t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; t1 = (bayer[width + 1] + bayer[width + 3] + 1) >> 1; *bgr++ = t0; *bgr++ = bayer[width + 2]; *bgr++ = t1; } } else { for (; bayer <= bayerEnd - 2; bayer += 2) { t0 = (bayer[0] + bayer[2] + bayer[width * 2] + bayer[width * 2 + 2] + 2) >> 2; t1 = (bayer[1] + bayer[width] + bayer[width + 2] + bayer[width * 2 + 1] + 2) >> 2; *bgr++ = bayer[width + 1]; *bgr++ = t1; *bgr++ = t0; t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; t1 = (bayer[width + 1] + bayer[width + 3] + 1) >> 1; *bgr++ = t1; *bgr++ = bayer[width + 2]; *bgr++ = t0; } } if (bayer < bayerEnd) { /* write second to last pixel */ t0 = (bayer[0] + bayer[2] + bayer[width * 2] + bayer[width * 2 + 2] + 2) >> 2; t1 = (bayer[1] + bayer[width] + bayer[width + 2] + bayer[width * 2 + 1] + 2) >> 2; if (blue_line) { *bgr++ = t0; *bgr++ = t1; *bgr++ = bayer[width + 1]; } else { *bgr++ = bayer[width + 1]; *bgr++ = t1; *bgr++ = t0; } /* write last pixel */ t0 = (bayer[2] + bayer[width * 2 + 2] + 1) >> 1; if (blue_line) { *bgr++ = t0; *bgr++ = bayer[width + 2]; *bgr++ = bayer[width + 1]; } else { *bgr++ = bayer[width + 1]; *bgr++ = bayer[width + 2]; *bgr++ = t0; } bayer++; } else { /* write last pixel */ t0 = (bayer[0] + bayer[width * 2] + 1) >> 1; t1 = (bayer[1] + bayer[width * 2 + 1] + bayer[width] + 1) / 3; if (blue_line) { *bgr++ = t0; *bgr++ = t1; *bgr++ = bayer[width + 1]; } else { *bgr++ = bayer[width + 1]; *bgr++ = t1; *bgr++ = t0; } } /* skip 2 border pixels */ bayer += 2; blue_line = !blue_line; start_with_green = !start_with_green; } /* render the last line */ convert_border_bayer_line_to_bgr24(bayer + width, bayer, bgr, width, !start_with_green, !blue_line); } /* * convert bayer raw data to rgb24 * args: * pBay: pointer to buffer containing Raw bayer data * pRGB24: pointer to buffer containing rgb24 data * width: picture width * height: picture height * pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) * * asserts: * none * * returns: none */ void bayer_to_rgb24(uint8_t *pBay, uint8_t *pRGB24, int width, int height, int pix_order) { switch (pix_order) { //conversion functions are build for bgr, by switching b and r lines we get rgb case 0: /* gbgbgb... | rgrgrg... (V4L2_PIX_FMT_SGBRG8)*/ bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); break; case 1: /* grgrgr... | bgbgbg... (V4L2_PIX_FMT_SGRBG8)*/ bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, TRUE); break; case 2: /* bgbgbg... | grgrgr... (V4L2_PIX_FMT_SBGGR8)*/ bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, FALSE); break; case 3: /* rgrgrg... ! gbgbgb... (V4L2_PIX_FMT_SRGGB8)*/ bayer_to_rgbbgr24(pBay, pRGB24, width, height, FALSE, TRUE); break; default: /* default is 0*/ bayer_to_rgbbgr24(pBay, pRGB24, width, height, TRUE, FALSE); break; } } /*------------------ YU12 ----------------------*/ /* *convert from packed 422 yuv (yuyv) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yuyv packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yuyv_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int w = 0, h = 0; int y_sizeline = width; int c_sizeline = width/2; uint8_t *in1 = in; //first line uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer uint8_t *py1 = out; // first line uint8_t *py2 = py1 + y_sizeline; //second line uint8_t *pu = py1 + (width * height); uint8_t *pv = pu + ((width * height) / 4); for(h = 0; h < height; h+=2) { for(w = 0; w < width; w+=2) //yuyv 2 bytes per sample { //printf("decoding: h:%i w:%i\n", h, w); *py1++ = *in1++; *py2++ = *in2++; *pu++ = ((*in1++) + (*in2++)) /2; //average u samples *py1++ = *in1++; *py2++ = *in2++; *pv++ = ((*in1++) + (*in2++)) /2; //average v samples } in1 = in + (h * width * 2); in2 = in + ((h+1) * width * 2); py1 = out + (h * width); py2 = out + ((h+1) * width); } } /* *convert from packed 422 yuv (yvyu) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yvyu packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yvyu_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int w = 0, h = 0; int y_sizeline = width; int c_sizeline = width/2; uint8_t *in1 = in; //first line uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer uint8_t *py1 = out; // first line uint8_t *py2 = py1 + y_sizeline; //second line uint8_t *pu = py1 + (width * height); uint8_t *pv = pu + ((width * height) / 4); for(h = 0; h < height; h+=2) { for(w = 0; w < width*2; w++) //yuyv 2 bytes per sample { *py1++ = *in1++; *py2++ = *in2++; *pv++ = ((*in1++) + (*in2++)) /2; //average v samples *py1++ = *in1++; *py2++ = *in2++; *pu++ = ((*in1++) + (*in2++)) /2; //average u samples } in1 = in + (h * width * 2); in2 = in + ((h+1) * width * 2); py1 = out + (h * width); py2 = out + ((h+1) * width); } } /* *convert from packed 422 yuv (uyvy) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input uyvy packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void uyvy_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int w = 0, h = 0; int y_sizeline = width; int c_sizeline = width/2; uint8_t *in1 = in; //first line uint8_t *in2 = in1 + (width * 2); //second line in yuyv buffer uint8_t *py1 = out; // first line uint8_t *py2 = py1 + y_sizeline; //second line uint8_t *pu = py1 + (width * height); uint8_t *pv = pu + ((width * height) / 4); for(h = 0; h < height; h+=2) { for(w = 0; w < width; w+=2) //yuyv 2 bytes per sample { *pu++ = ((*in1++) + (*in2++)) /2; //average u samples *py1++ = *in1++; *py2++ = *in2++; *pv++ = ((*in1++) + (*in2++)) /2; //average v samples *py1++ = *in1++; *py2++ = *in2++; } in1 = in + (h * width * 2); in2 = in + ((h+1) * width * 2); py1 = out + (h * width); py2 = out + ((h+1) * width); } } /* *convert from 422 planar yuv to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input 422 planar data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yuv422p_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); int w = 0, h = 0; int c_sizeline = width/2; uint8_t *pu = out + (width * height); uint8_t *inu1 = in + (width * height); uint8_t *inu2 = inu1 + (width/2); uint8_t *pv = pu + ((width * height) / 4); uint8_t *inv1 = inu1 + ((width * height) / 2); uint8_t *inv2 = inv1 + (width / 2); for(h = 0; h < height; h+=2) { for(w = 0; w < width/2; w++) { *pu++ = ((*inu1++) + (*inu2++)) /2; //average u sample *pv++ = ((*inv1++) + (*inv2++)) /2; //average v samples } inu1 = in + (width * height) + (h * c_sizeline); inu2 = in + (width * height) + ((h+1) * c_sizeline); inv1 = inu1 + ((width * height) / 2); inv2 = inv1 + (width / 2); } } /* * convert yyuv (packed) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yyuv packed data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void yyuv_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int w = 0, h = 0; int y_sizeline = width; int c_sizeline = width/2; uint8_t *in1 = in; //first line uint8_t *in2 = in1 + (width * 2); //second line in yyuv buffer uint8_t *py1 = out; // first line uint8_t *py2 = py1 + y_sizeline; //second line uint8_t *pu = py1 + (width * height); uint8_t *pv = pu + ((width * height) / 4); for(h = 0; h < height; h+=2) { for(w = 0; w < width; w+=2) //yyuv 2 bytes per sample { *py1++ = *in1++; *py1++ = *in1++; *py2++ = *in2++; *py2++ = *in2++; *pu++ = ((*in1++) + (*in2++)) /2; //average v samples *pv++ = ((*in1++) + (*in2++)) /2; //average u samples } in1 = in + (h * width * 2); in2 = in + ((h+1) * width * 2); py1 = out + (h * width); py2 = out + ((h+1) * width); } } /* *convert from 420 planar (yv12) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yv12 planar data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); /*copy u data*/ memcpy(out+(width*height), in+((width * height * 5) / 4), width * height / 4); /*copy v data*/ memcpy(out+((width * height * 5) / 4), in+(width * height), width * height / 4); } /* * convert nv12 planar (uv interleaved) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing nv12 planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); uint8_t *puv = in + (width * height); uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); /*uv plane*/ int i = 0; for(i=0; i< width * height /2; i+=2) { *pu++ = *puv++; *pv++ = *puv++; } } /* * convert nv21 planar (vu interleaved) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing nv21 planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv21_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); uint8_t *puv = in + (width * height); uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); /*uv plane*/ int i = 0; for(i=0; i< width * height /2; i+=2) { *pv++ = *puv++; *pu++ = *puv++; } } /* * convert yuv 422 planar (uv interleaved) (nv16) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yuv422 (nv16) planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv16_to_yu12 (uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); /*uv plane*/ uint8_t *puv1 = in + (width * height); //first line uint8_t *puv2 = puv1 + width; //second line uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h = 0; int w = 0; for(h=0; h < height; h+=2) { for(w=0; w < width; w+=2) { *pu++ = ((*puv1++) + (*puv2++)) / 2; //average *pv++ = ((*puv1++) + (*puv2++)) / 2; //average } puv1 = in + (width + height) + (h * width); puv2 = puv1 + width; } } /* * convert yuv 422 planar (vu interleaved) (nv61) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yuv422 (nv61) planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv61_to_yu12 (uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*copy y data*/ memcpy(out, in, width*height); /*uv plane*/ uint8_t *puv1 = in + (width * height); //first line uint8_t *puv2 = puv1 + width; //second line uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h = 0; int w = 0; for(h=0; h < height; h+=2) { for(w=0; w < width; w+=2) { *pv++ = ((*puv1++) + (*puv2++)) / 2; //average *pu++ = ((*puv1++) + (*puv2++)) / 2; //average } puv1 = in + (width + height) + (h * width); puv2 = puv1 + width; } } /* * Unpack buffer of (vw bit) data into padded 16bit buffer. * args: * raw - pointer to input raw packed data buffer * unpacked - pointer to unpacked output data buffer * vw - vw bit * unpacked_len - length * * asserts: * none * * returns: none */ static inline void convert_packed_to_16bit(uint8_t *raw, uint16_t *unpacked, int vw, int unpacked_len) { int mask = (1 << vw) - 1; uint32_t buffer = 0; int bitsIn = 0; while (unpacked_len--) { while (bitsIn < vw) { buffer = (buffer << 8) | *(raw++); bitsIn += 8; } bitsIn -= vw; *(unpacked++) = (buffer >> bitsIn) & mask; } } /* * convert y10b (bit-packed array greyscale format) to yu12 * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y10b (bit-packed array) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y10b_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); uint16_t *unpacked_buffer = NULL; uint16_t *ptmp; uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h = 0; unpacked_buffer = malloc(width * height * sizeof(uint16_t)); if (unpacked_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (y10b_to_yu12): %s\n", strerror(errno)); exit(-1); } convert_packed_to_16bit(in, unpacked_buffer, 10, width * height); ptmp = unpacked_buffer; for (h = 0; h < height; h++) { int w=0; for (w = 0; w < width; w++) { /* Y */ *py++ = (uint8_t) ((*ptmp++ & 0x3FF) >> 2); } } for(h=0; h < (width * height / 4); h++) { /* U */ *pu++ = 0x80; /* V */ *pv++ = 0x80; } free(unpacked_buffer); } /* * convert yuv 411 packed (y41p) to planar yuv 420 (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y41p data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y41p_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); uint8_t *py1 = out; uint8_t *py2 = out + width; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h=0; int linesize = width * 3 /2; for(h = 0; h < height; h += 2) { py1 = out + (h * width); // first line py2 = out + ((h + 1) * width); // second line int offset1 = linesize * h; //line 1 int offset2 = linesize * (h + 1); //line 2 int w = 0; for(w = 0; w < linesize; w += 12) { /* y first line */ *py1++ = in[w + 1 + offset1]; //Y00 *py1++ = in[w + 3 + offset1]; //Y01 *py1++ = in[w + 5 + offset1]; //Y02 *py1++ = in[w + 7 + offset1]; //Y03 *py1++ = in[w + 8 + offset1]; //Y04 *py1++ = in[w + 9 + offset1]; //Y05 *py1++ = in[w + 10 + offset1]; //Y06 *py1++ = in[w + 11 + offset1]; //Y07 /* y second line */ *py2++ = in[w + 1 + offset2]; //Y10 *py2++ = in[w + 3 + offset2]; //Y11 *py2++ = in[w + 5 + offset2]; //Y12 *py2++ = in[w + 7 + offset2]; //Y13 *py2++ = in[w + 8 + offset2]; //Y14 *py2++ = in[w + 9 + offset2]; //Y15 *py2++ = in[w + 10 + offset2]; //Y16 *py2++ = in[w + 11 + offset2]; //Y17 /*U0 and U1 average first and second lines*/ *pu++ = (in[w + offset1] + in[w + offset2]) / 2; //U00 + U10 /2 *pu++ = (in[w + offset1] + in[w + offset2]) / 2; //U00 + U10 /2 /*U2 and U3 average first and second lines*/ *pu++ = (in[w + 4 + offset1] + in[w + 4 + offset2]) / 2; //U01 + U11 /2 *pu++ = (in[w + 4 + offset1] + in[w + 4 + offset2]) / 2; //U01 + U11 /2 /*V0 and V1 average first and second lines*/ *pv++ = (in[w + 2 + offset1] + in[w + 2 + offset2]) / 2; //V00 + V10 /2 *pv++ = (in[w + 2 + offset1] + in[w + 2 + offset2]) / 2; //V00 + V10 /2 /*V2 and V3 average first and second lines*/ *pv++ = (in[w + 6 + offset1] + in[w + 6 + offset2]) / 2; //V01 + V11 /2 *pv++ = (in[w + 6 + offset1] + in[w + 6 + offset2]) / 2; //V01 + V11 /2 } } } /* * convert yuv mono (grey) to yuv 420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing grey (y only) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void grey_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h=0; /* Y */ memcpy(out, in, width * height); /* U and V */ for (h=0; h < (width * height / 4); h++) { *pu++ = 0x80; *pv++ = 0x80; } } /* * convert y16 (16 bit greyscale format) to yu12 * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y16 (16 bit greyscale) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y16_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); uint16_t *ptmp = (uint16_t *) in; uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); int h = 0; for (h = 0; h < height; h++) { int w=0; for (w = 0; w < width; w++) { /* Y */ *py++ = (uint8_t) ((*ptmp++ & 0xFF00) >> 8); } } for(h=0; h < (width * height / 4); h++) { /* U */ *pu++ = 0x80; /* V */ *pv++ = 0x80; } } /* * convert SPCA501 (s501) to yuv 420 planar (yu12) * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void s501_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); /*assertions*/ assert(in); assert(out); int h = 0; int8_t *pin = (int8_t *) in; uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height ) / 4); for (h = 0; h < height; h += 2 ) { int w = 0; /* Y */ for (w = 0; w < width; w++) { *py++ = (uint8_t) 0x80 + *pin++; } /* U */ for (w = 0; w < width /2; w++) { *pu++ = (uint8_t) 0x80 + *pin++; } /* Y */ for (w = 0; w < width; w++) { *py++ = (uint8_t) 0x80 + *pin++; } /* V */ for (w = 0; w < width /2; w++) { *pv++ = (uint8_t) 0x80 + *pin++; } } } /* * convert SPCA505 (s505) to yuv 420 planar (yu12) * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void s505_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int h = 0; int8_t *pin = (int8_t *) in; uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height ) / 4); for (h = 0; h < height; h += 2 ) { int w = 0; /* Y */ for (w = 0; w < width * 2; w++) // 2 lines { *py++ = (uint8_t) 0x80 + *pin++; } /* U */ for (w = 0; w < width /2; w++) { *pu++ = (uint8_t) 0x80 + *pin++; } /* V */ for (w = 0; w < width /2; w++) { *pv++ = (uint8_t) 0x80 + *pin++; } } } /* * convert SPCA508 (s508) to yuv 420 planar (yu12) * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void s508_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(in); assert(out); int h = 0; int8_t *pin = (int8_t *) in; uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height ) / 4); for (h = 0; h < height; h += 2 ) { int w = 0; /* Y */ for (w = 0; w < width; w++) { *py++ = (uint8_t) 0x80 + *pin++; } /* U */ for (w = 0; w < width /2; w++) { *pu++ = (uint8_t) 0x80 + *pin++; } /* V */ for (w = 0; w < width /2; w++) { *pv++ = (uint8_t) 0x80 + *pin++; } /* Y */ for (w = 0; w < width; w++) { *py++ = (uint8_t) 0x80 + *pin++; } } } /* * convert rgb24 to yu12 * args: * out: pointer to output buffer containing yu12 data * in: pointer to input buffer containing rgb24 data * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void rgb24_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(out); assert(in); uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); uint8_t *in1 = in; //first line uint8_t *in2 = in + (width * 3); //second line int i=0; for(i = 0; i < (width * height * 3); i += 3) { /* y */ *py++ =CLIP(0.299 * (in1[i] - 128) + 0.587 * (in1[i+1] - 128) + 0.114 * (in1[i+2] - 128) + 128); } int h = 0; for(h = 0; h < height; h += 2) { in1 = in + (h * width * 3); in2 = in1 + (width * 3); for(i = 0; i < (width * 3); i += 6) { /* u v */ uint8_t u1 = CLIP(((- 0.147 * (in1[i] - 128) - 0.289 * (in1[i+1] - 128) + 0.436 * (in1[i+2] - 128) + 128) + (- 0.147 * (in1[i+3] - 128) - 0.289 * (in1[i+4] - 128) + 0.436 * (in1[i+5] - 128) + 128))/2); uint8_t v1 =CLIP(((0.615 * (in1[i] - 128) - 0.515 * (in1[i+1] - 128) - 0.100 * (in1[i+2] - 128) + 128) + (0.615 * (in1[i+3] - 128) - 0.515 * (in1[i+4] - 128) - 0.100 * (in1[i+5] - 128) + 128))/2); uint8_t u2 = CLIP(((- 0.147 * (in2[i] - 128) - 0.289 * (in2[i+1] - 128) + 0.436 * (in2[i+2] - 128) + 128) + (- 0.147 * (in2[i+3] - 128) - 0.289 * (in2[i+4] - 128) + 0.436 * (in2[i+5] - 128) + 128))/2); uint8_t v2 =CLIP(((0.615 * (in2[i] - 128) - 0.515 * (in2[i+1] - 128) - 0.100 * (in2[i+2] - 128) + 128) + (0.615 * (in2[i+3] - 128) - 0.515 * (in2[i+4] - 128) - 0.100 * (in2[i+5] - 128) + 128))/2); *pu++ = (u1 + u2) / 2; *pv++ = (v1 + v2) / 2; } } } /* * convert bgr24 to yu12 * args: * out: pointer to output buffer containing yu12 data * in: pointer to input buffer containing bgr24 data * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void bgr24_to_yu12(uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(out); assert(in); uint8_t *py = out; uint8_t *pu = out + (width * height); uint8_t *pv = pu + ((width * height) / 4); uint8_t *in1 = in; //first line uint8_t *in2 = in + (width * 3); //second line int i = 0; for(i = 0; i < (width * height * 3); i += 3) { /* y */ *py++ =CLIP(0.299 * (in1[i+2] - 128) + 0.587 * (in1[i+1] - 128) + 0.114 * (in1[i] - 128) + 128); } int h = 0; for(h = 0; h < height; h += 2) { in1 = in + (h * width * 3); in2 = in1 + (width * 3); for(i = 0; i < (width * 3); i += 6) { /* u */ uint8_t u1 = CLIP(((- 0.147 * (in1[i+2] - 128) - 0.289 * (in1[i+1] - 128) + 0.436 * (in1[i] - 128) + 128) + (- 0.147 * (in1[i+5] - 128) - 0.289 * (in1[i+4] - 128) + 0.436 * (in1[i+3] - 128) + 128))/2); uint8_t u2 = CLIP(((- 0.147 * (in2[i+2] - 128) - 0.289 * (in2[i+1] - 128) + 0.436 * (in2[i] - 128) + 128) + (- 0.147 * (in2[i+5] - 128) - 0.289 * (in2[i+4] - 128) + 0.436 * (in2[i+3] - 128) + 128))/2); /* v*/ uint8_t v1 =CLIP(((0.615 * (in1[i+2] - 128) - 0.515 * (in1[i+1] - 128) - 0.100 * (in1[i] - 128) + 128) + (0.615 * (in1[i+5] - 128) - 0.515 * (in1[i+4] - 128) - 0.100 * (in1[i+3] - 128) + 128))/2); uint8_t v2 =CLIP(((0.615 * (in2[i+2] - 128) - 0.515 * (in2[i+1] - 128) - 0.100 * (in2[i] - 128) + 128) + (0.615 * (in2[i+5] - 128) - 0.515 * (in2[i+4] - 128) - 0.100 * (in2[i+3] - 128) + 128))/2); *pu++ = (u1 + u2) / 2; *pv++ = (v1 + v2) / 2; } } } /* * yu12 to rgb24 * args: * out - pointer to output rgb data buffer * in - pointer to input yu12 data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ void yu12_to_rgb24 (uint8_t *out, uint8_t *in, int width, int height) { /*assertions*/ assert(out); assert(in); uint8_t *py1 = in; //line 1 uint8_t *py2 = py1 + width; //line 2 uint8_t *pu = in + (width * height); uint8_t *pv = pu + ((width * height) / 4); uint8_t *pout1 = out; //first line uint8_t *pout2 = out + (width * 3); //second line int h=0, w=0; for(h=0; h < height; h+=2) //every two lines { py1 = in + (h * width); py2 = py1 + width; pout1 = out + (h * width * 3); pout2 = pout1 + (width * 3); for(w=0; w0 ; h-=2) //every two lines { uvline--; //begin of uv line py1 = in + ((h-1) * width); py2 = py1 - width; pu = in + (width * height) + ((uvline * width)/2); pv = pu + ((width * height) / 4); pout1 = out + ((height-h) * width * 3); pout2 = pout1 + (width * 3); for(w=0; w> 2); /* U */ *framebuffer++ = 0x80; /* Y1 */ *framebuffer++ = (uint8_t) ((ptmp[1] & 0x3FF) >> 2); /* V */ *framebuffer++ = 0x80; ptmp += 2; } } free(unpacked_buffer); } /* * convert y16 (grey) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing y16 (grey) data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void y16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) { uint16_t *ptmp= (uint16_t *) tmpbuffer; int h=0; for(h=0;h> 8); /* U */ *framebuffer++ = 0x80; /* Y1 */ *framebuffer++ = (uint8_t) ((ptmp[1] & 0xFF00) >> 8); /* V */ *framebuffer++ = 0x80; ptmp += 2; } } } /* * convert yyuv (packed) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yyuv packed data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void yyuv_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) { uint8_t *ptmp=NULL; uint8_t *pfmb=NULL; ptmp = tmpbuffer; pfmb = framebuffer; int h=0; for(h=0;h= 0; ) { *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *U; *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *V; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *U++; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *V++; } Y0 += width * 2; /* next block of lines */ framebuffer = line2; } } /* * convert SPCA505 (s505) to yuv 422 * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s505_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) { int h = 0; uint8_t *Y0 = tmpbuffer; /*fisrt line*/ for (h = 0; h < height/2; h++ ) { uint8_t *line2 = framebuffer + width * 2; /* next line */ uint8_t *Y1 = Y0 + width; uint8_t *U = Y1 + width; uint8_t *V = U + width/2; int w = 0; for (w = width / 2; --w >= 0; ) { *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *U; *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *V; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *U++; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *V++; } Y0 += width * 2; /* next block of lines */ framebuffer = line2; } } /* * convert SPCA508 (s508) to yuv 422 * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s508_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height) { int h = 0; uint8_t *Y0 = tmpbuffer; /*fisrt line*/ for (h = 0; h < height/2; h++ ) { uint8_t *line2 = framebuffer + width * 2; /* next line */ uint8_t *U = Y0 + width; uint8_t *V = U + width/2; uint8_t *Y1= V + width/2; int w = 0; for (w = width / 2; --w >= 0; ) { *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *U; *framebuffer++ = 0x80 + *Y0++; *framebuffer++ = 0x80 + *V; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *U++; *line2++ = 0x80 + *Y1++; *line2++ = 0x80 + *V++; } Y0 += width * 2; /* next block of lines */ framebuffer = line2; } } /* * convert rgb24 to yuyv * args: * prgb: pointer to input buffer containing rgb data * pyuv: pointer to output buffer containing converted yuyv data * width: picture width * height: picture height * * asserts: * none * * returns: none */ void rgb2yuyv(uint8_t *prgb, uint8_t *pyuv, int width, int height) { int i=0; for(i=0;i<(width*height*3);i=i+6) { /* y */ *pyuv++ =CLIP(0.299 * (prgb[i] - 128) + 0.587 * (prgb[i+1] - 128) + 0.114 * (prgb[i+2] - 128) + 128); /* u */ *pyuv++ =CLIP(((- 0.147 * (prgb[i] - 128) - 0.289 * (prgb[i+1] - 128) + 0.436 * (prgb[i+2] - 128) + 128) + (- 0.147 * (prgb[i+3] - 128) - 0.289 * (prgb[i+4] - 128) + 0.436 * (prgb[i+5] - 128) + 128))/2); /* y1 */ *pyuv++ =CLIP(0.299 * (prgb[i+3] - 128) + 0.587 * (prgb[i+4] - 128) + 0.114 * (prgb[i+5] - 128) + 128); /* v*/ *pyuv++ =CLIP(((0.615 * (prgb[i] - 128) - 0.515 * (prgb[i+1] - 128) - 0.100 * (prgb[i+2] - 128) + 128) + (0.615 * (prgb[i+3] - 128) - 0.515 * (prgb[i+4] - 128) - 0.100 * (prgb[i+5] - 128) + 128))/2); } } /* * convert bgr24 to yuyv * args: * pbgr: pointer to input buffer containing bgr data * pyuv: pointer to output buffer containing converted yuyv data * width: picture width * height: picture height * * asserts: * none * * returns: none */ void bgr2yuyv(uint8_t *pbgr, uint8_t *pyuv, int width, int height) { int i=0; for(i=0;i<(width*height*3);i=i+6) { /* y */ *pyuv++ =CLIP(0.299 * (pbgr[i+2] - 128) + 0.587 * (pbgr[i+1] - 128) + 0.114 * (pbgr[i] - 128) + 128); /* u */ *pyuv++ =CLIP(((- 0.147 * (pbgr[i+2] - 128) - 0.289 * (pbgr[i+1] - 128) + 0.436 * (pbgr[i] - 128) + 128) + (- 0.147 * (pbgr[i+5] - 128) - 0.289 * (pbgr[i+4] - 128) + 0.436 * (pbgr[i+3] - 128) + 128))/2); /* y1 */ *pyuv++ =CLIP(0.299 * (pbgr[i+5] - 128) + 0.587 * (pbgr[i+4] - 128) + 0.114 * (pbgr[i+3] - 128) + 128); /* v*/ *pyuv++ =CLIP(((0.615 * (pbgr[i+2] - 128) - 0.515 * (pbgr[i+1] - 128) - 0.100 * (pbgr[i] - 128) + 128) + (0.615 * (pbgr[i+5] - 128) - 0.515 * (pbgr[i+4] - 128) - 0.100 * (pbgr[i+3] - 128) + 128))/2); } } #if MJPG_BUILTIN //use internal jpeg decoder /* * used for internal jpeg decoding 420 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv420pto422(int *out, uint8_t *pic, int width) { int j = 0; int outy1 = 0; int outy2 = 8; //yyyyuv uint8_t *pic0 = pic; uint8_t *pic1 = pic + width; int *outy = out; int *outu = out + 64 * 4; int *outv = out + 64 * 5; for (j = 0; j < 8; j++) { int k = 0; for (k = 0; k < 8; k++) { if( k == 4) { outy1 += 56; outy2 += 56; } *pic0++ = CLIP(outy[outy1]); //y1 line 1 *pic0++ = CLIP(128 + *outu); //u line 1-2 *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 *pic0++ = CLIP(128 + *outv); //v line 1-2 *pic1++ = CLIP(outy[outy2]); //y1 line 2 *pic1++ = CLIP(128 + *outu); //u line 1-2 *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 *pic1++ = CLIP(128 + *outv); //v line 1-2 outy1 +=2; outy2 += 2; outu++; outv++; } if(j==3) { outy = out + 128; } else { outy += 16; } outy1 = 0; outy2 = 8; pic0 += 2 * (width -16); pic1 += 2 * (width -16); } } /* * used for internal jpeg decoding 422 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv422pto422(int *out, uint8_t *pic, int width) { int j = 0; int outy1 = 0; int outy2 = 8; int outu1 = 0; int outv1 = 0; //yyyyuv uint8_t *pic0 = pic; uint8_t *pic1 = pic + width; int *outy = out; int *outu = out + 64 * 4; int *outv = out + 64 * 5; for (j = 0; j < 4; j++) { int k = 0; for (k = 0; k < 8; k++) { if( k == 4) { outy1 += 56; outy2 += 56; } *pic0++ = CLIP(outy[outy1]); //y1 line 1 *pic0++ = CLIP(128 + outu[outu1]); //u line 1 *pic0++ = CLIP(outy[outy1+1]); //y2 line 1 *pic0++ = CLIP(128 + outv[outv1]); //v line 1 *pic1++ = CLIP(outy[outy2]); //y1 line 2 *pic1++ = CLIP(128 + outu[outu1+8]);//u line 2 *pic1++ = CLIP(outy[outy2+1]); //y2 line 2 *pic1++ = CLIP(128 + outv[outv1+8]);//v line 2 outv1 += 1; outu1 += 1; outy1 +=2; outy2 +=2; } outy += 16;outu +=8; outv +=8; outv1 = 0; outu1=0; outy1 = 0; outy2 = 8; pic0 += 2 * (width -16); pic1 += 2 * (width -16); } } /* * used for internal jpeg decoding 444 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv444pto422(int *out, uint8_t *pic, int width) { int j = 0; int outy1 = 0; int outy2 = 8; int outu1 = 0; int outv1 = 0; //yyyyuv uint8_t *pic0 = pic; uint8_t *pic1 = pic + width; int *outy = out; int *outu = out + 64 * 4; // Ooops where did i invert ?? int *outv = out + 64 * 5; for (j = 0; j < 4; j++) { int k = 0; for (k = 0; k < 4; k++) { *pic0++ =CLIP( outy[outy1]); //y1 line 1 *pic0++ =CLIP( 128 + outu[outu1]); //u line 1 *pic0++ =CLIP( outy[outy1+1]); //y2 line 1 *pic0++ =CLIP( 128 + outv[outv1]); //v line 1 *pic1++ =CLIP( outy[outy2]); //y1 line 2 *pic1++ =CLIP( 128 + outu[outu1+8]);//u line 2 *pic1++ =CLIP( outy[outy2+1]); //y2 line 2 *pic1++ =CLIP( 128 + outv[outv1+8]);//v line 2 outv1 += 2; outu1 += 2; outy1 +=2; outy2 +=2; } outy += 16;outu +=16; outv +=16; outv1 = 0; outu1=0; outy1 = 0; outy2 = 8; pic0 += 2 * (width -8); pic1 += 2 * (width -8); } } /* * used for internal jpeg decoding 400 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy ) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv400pto422(int *out, uint8_t *pic, int width) { int j = 0; int outy1 = 0; int outy2 = 8; uint8_t *pic0 = pic; uint8_t *pic1 = pic + width; int *outy = out; //yyyy for (j = 0; j < 4; j++) { int k = 0; for (k = 0; k < 4; k++) { *pic0++ = CLIP(outy[outy1]); //y1 line 1 *pic0++ = 128 ; //u *pic0++ = CLIP(outy[outy1+1]);//y2 line 1 *pic0++ = 128 ; //v *pic1++ = CLIP(outy[outy2]); //y1 line 2 *pic1++ = 128 ; //u *pic1++ = CLIP(outy[outy2+1]);//y2 line 2 *pic1++ = 128 ; //v outy1 +=2; outy2 +=2; } outy += 16; outy1 = 0; outy2 = 8; pic0 += 2 * (width -8); pic1 += 2 * (width -8); } } #endif guvcview-2.0.2+debian/gview_v4l2core/colorspaces.h000066400000000000000000000466571256377215300221540ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef COLORSPACES_H #define COLORSPACES_H #include "gview.h" /* *convert from packed 422 yuv (yuyv) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yuyv packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yuyv_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* *convert from packed 422 yuv (yvyu) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yvyu packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yvyu_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* *convert from packed 422 yuv (uyvy) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input uyvy packed data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void uyvy_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* *convert from 422 planar yuv to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input 422 planar data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yuv422p_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert yyuv (packed) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yyuv packed data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void yyuv_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* *convert from 420 planar (yv12) to 420 planar (yu12) * args: * out - pointer to output yu12 planar data buffer * in - pointer to input yv12 planar data buffer * width - frame width * height - frame height * * asserts: * in is not null * out is not null * * returns: none */ void yv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert nv12 planar (uv interleaved) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing nv12 planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv12_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert nv21 planar (vu interleaved) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing nv21 planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv21_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert yuv 422 planar (uv interleaved) (nv16) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yuv422 (nv16) planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv16_to_yu12 (uint8_t *out, uint8_t *in, int width, int height); /* * convert yuv 422 planar (vu interleaved) (nv61) to yuv420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing yuv422 (nv61) planar data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void nv61_to_yu12 (uint8_t *out, uint8_t *in, int width, int height); /* * convert y10b (bit-packed array greyscale format) to yu12 * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y10b (bit-packed array) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y10b_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert yuv 411 packed (y41p) to planar yuv 420 (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y41p data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y41p_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert yuv mono (grey) to yuv 420 planar (yu12) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing grey (y only) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void grey_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert y16 (16 bit greyscale format) to yu12 * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing y16 (16 bit greyscale) data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void y16_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert SPCA501 (s501) to yuv 420 planar (yu12) * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s501_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert SPCA505 (s505) to yuv 420 planar (yu12) * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void s505_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert SPCA508 (s508) to yuv 420 planar (yu12) * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * out: pointer to output buffer (yu12) * in: pointer to input buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void s508_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert rgb24 to yu12 * args: * out: pointer to output buffer containing yu12 data * in: pointer to input buffer containing rgb24 data * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void rgb24_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * convert bgr24 to yu12 * args: * out: pointer to output buffer containing yu12 data * in: pointer to input buffer containing bgr24 data * width: picture width * height: picture height * * asserts: * out is not null * in is not null * * returns: none */ void bgr24_to_yu12(uint8_t *out, uint8_t *in, int width, int height); /* * yu12 to rgb24 * args: * out - pointer to output rgb data buffer * in - pointer to input yu12 data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ void yu12_to_rgb24 (uint8_t *out, uint8_t *in, int width, int height); /* * FIXME: yu12 to bgr24 with lines upsidedown * used for bitmap files (DIB24) * args: * out - pointer to output bgr data buffer * in - pointer to input yu12 data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ void yu12_to_dib24 (uint8_t *out, uint8_t *in, int width, int height); /* * convert yuv 420 planar (yu12) to yuv 422 * args: * out- pointer to output buffer (yuyv) * in- pointer to input buffer (yuv420 planar data frame (yu12)) * width- picture width * height- picture height * * asserts: * out is not null * in is not null * * returns: none */ void yu12_to_yuyv (uint8_t *out, uint8_t *in, int width, int height); /* * regular yuv (YUYV) to rgb24 * args: * pyuv - pointer to input yuyv data buffer * prgb - pointer to converted output rgb data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ void yuyv2rgb (uint8_t *pyuv, uint8_t *prgb, int width, int height); /* * used for rgb video (fourcc="RGB ") * lines are on correct order * args: * pyuv - pointer to input yuyv data buffer * prgb - pointer to converted output bgr data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ //void yuyv2bgr1 (uint8_t *pyuv, uint8_t *pbgr, int width, int height); /* * yuv (YUYV) to bgr with lines upsidedown * used for bitmap files (DIB24) * args: * pyuv - pointer to input yuyv data buffer * prgb - pointer to converted output bgr data buffer * width - buffer width (in pixels) * height - buffer height (in pixels) * * asserts: * none * * returns: none */ void yuyv2bgr (uint8_t *pyuv, uint8_t *pbgr, int width, int height); /* * convert y10b (bit-packed array greyscale format) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing y10b (bit-packed array) data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void y10b_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert y16 (grey) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing y16 (grey) data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void y16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yyuv (packed) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yyuv packed data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void yyuv_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert uyvy (packed) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing uyvy packed data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void uyvy_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yvyu (packed) to yuyv (packed) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yvyu packed data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void yvyu_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yvu 420 planar (yv12) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yuv420 planar data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void yvu420_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv 420 planar (uv interleaved) (nv12) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yuv420 (nv12) planar data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void nv12_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv 420 planar (vu interleaved) (nv21) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yuv420 (nv21) planar data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void nv21_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv 422 planar (uv interleaved) (nv16) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yuv422 (nv16) planar data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void nv16_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv 422 planar (vu interleaved) (nv61) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing yuv422 (nv61) planar data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void nv61_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv 411 packed (y41p) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing y41p data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void y41p_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert yuv mono (grey) to yuv 422 * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing grey (y only) data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void grey_to_yuyv (uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert SPCA501 (s501) to yuv 422 * s501 |Y0..width..Y0|U..width/2..U|Y1..width..Y1|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s501_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert SPCA505 (s505) to yuv 422 * s505 |Y0..width..Y0|Y1..width..Y1|U..width/2..U|V..width/2..V| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s505_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert SPCA508 (s508) to yuv 422 * s508 |Y0..width..Y0|U..width/2..U|V..width/2..V|Y1..width..Y1| * signed values (-128;+127) must be converted to unsigned (0; 255) * args: * framebuffer: pointer to frame buffer (yuyv) * tmpbuffer: pointer to temp buffer containing s501 data frame * width: picture width * height: picture height * * asserts: * none * * returns: none */ void s508_to_yuyv(uint8_t *framebuffer, uint8_t *tmpbuffer, int width, int height); /* * convert bayer raw data to rgb24 * args: * pBay: pointer to buffer containing Raw bayer data * pRGB24: pointer to buffer containing rgb24 data * width: picture width * height: picture height * pix_order: bayer pixel order (0=gb/rg 1=gr/bg 2=bg/gr 3=rg/bg) * * asserts: * none * * returns: none */ void bayer_to_rgb24(uint8_t *pBay, uint8_t *pRGB24, int width, int height, int pix_order); /* * convert rgb24 to yuyv * args: * prgb: pointer to input buffer containing rgb data * pyuv: pointer to output buffer containing converted yuyv data * width: picture width * height: picture height * * asserts: * none * * returns: none */ void rgb2yuyv(uint8_t *prgb, uint8_t *pyuv, int width, int height); /* * convert bgr24 to yuyv * args: * pbgr: pointer to input buffer containing bgr data * pyuv: pointer to output buffer containing converted yuyv data * width: picture width * height: picture height * * asserts: * none * * returns: none */ void bgr2yuyv(uint8_t *pbgr, uint8_t *pyuv, int width, int height); /* * used for internal jpeg decoding 420 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv420pto422(int *out, uint8_t *pic, int width); /* * used for internal jpeg decoding 422 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv422pto422(int *out, uint8_t *pic, int width); /* * used for internal jpeg decoding 444 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy u v) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv444pto422(int *out, uint8_t *pic, int width); /* * used for internal jpeg decoding 400 planar to 422 * args: * out: pointer to data output of idct (macroblocks yyyy ) * pic: pointer to picture buffer (yuyv) * width: picture width * * asserts: * none * * returns: none */ void yuv400pto422(int *out, uint8_t *pic, int width); #endif guvcview-2.0.2+debian/gview_v4l2core/control_profile.c000066400000000000000000000166061256377215300230210ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "v4l2_controls.h" #include "control_profile.h" #include "../config.h" extern int verbosity; /* * save the device control values into a profile file * args: * vd - pointer to video device data * filename - profile filename * * asserts: * vd is not null * * returns: error code (0 -E_OK) */ int save_control_profile(v4l2_dev_t *vd, const char *filename) { /*assertions*/ assert(vd != NULL); FILE *fp; fp = fopen(filename, "w"); if( fp == NULL ) { fprintf(stderr, "V4L2_CORE: (save_control_profile) Could not open %s for write: %s\n", filename, strerror(errno)); return (E_FILE_IO_ERR); } else { if (vd->list_device_controls) { v4l2_ctrl_t *current = vd->list_device_controls; /*write header*/ fprintf(fp, "#V4L2/CTRL/0.0.2\n"); fprintf(fp, "APP{\"%s\"}\n", PACKAGE_STRING); /*write control data*/ fprintf(fp, "# control data\n"); for( ; current != NULL; current = current->next) { if((current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) || (current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) || (current->control.flags & V4L2_CTRL_FLAG_GRABBED)) { if(verbosity > 0) printf("V4L2_CORE: (save_control_profile) skiping control 0x%08x\n", current->control.id); continue; } fprintf(fp, "#%s\n", current->control.name); switch(current->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING : fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:0}=STR{\"%s\"}\n", current->control.id, current->control.minimum, current->control.maximum, current->control.step, current->string); break; #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64 : fprintf(fp, "ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}\n", current->control.id, current->value64); break; #endif default : fprintf(fp, "ID{0x%08x};CHK{%i:%i:%i:%i}=VAL{%i}\n", current->control.id, current->control.minimum, current->control.maximum, current->control.step, current->control.default_value, current->value); break; } } } } fflush(fp); /*flush stream buffers to filesystem*/ if(fsync(fileno(fp)) || fclose(fp)) { fprintf(stderr, "V4L2_CORE: (save_control_profile) write to file failed: %s\n", strerror(errno)); return(E_FILE_IO_ERR); } return (E_OK); } /* * load the device control values from a profile file * args: * vd - pointer to video device data * filename - profile filename * * asserts: * vd is not null * * returns: error code (0 -E_OK) */ int load_control_profile(v4l2_dev_t *vd, const char *filename) { /*assertions*/ assert(vd != NULL); FILE *fp; int major=0, minor=0, rev=0; if((fp = fopen(filename,"r"))!=NULL) { char line[200]; if(fgets(line, sizeof(line), fp) != NULL) { if(sscanf(line,"#V4L2/CTRL/%3i.%3i.%3i", &major, &minor, &rev) == 3) { //check standard version if needed } else { fprintf(stderr, "V4L2_CORE: (load_control_profile) no valid header found\n"); fclose(fp); return(E_NO_DATA); } } else { fprintf(stderr, "V4L2_CORE: (load_control_profile) no valid header found\n"); fclose(fp); return(E_NO_DATA); } while (fgets(line, sizeof(line), fp) != NULL) { int id = 0; int min = 0, max = 0, step = 0, def = 0; int32_t val = 0; int64_t val64 = 0; if ((line[0]!='#') && (line[0]!='\n')) { if(sscanf(line,"ID{0x%08x};CHK{%5i:%5i:%5i:%5i}=VAL{%5i}", &id, &min, &max, &step, &def, &val) == 6) { v4l2_ctrl_t *current = v4l2core_get_control_by_id(id); if(current) { /*check values*/ if(current->control.minimum == min && current->control.maximum == max && current->control.step == step && current->control.default_value == def) { current->value = val; } } } else if(sscanf(line,"ID{0x%08x};CHK{0:0:0:0}=VAL64{%" PRId64 "}", &id, &val64) == 2) { v4l2_ctrl_t *current = v4l2core_get_control_by_id(id); if(current) { current->value64 = val64; } } else if(sscanf(line,"ID{0x%08x};CHK{%5i:%5i:%5i:0}=STR{\"%*s\"}", &id, &min, &max, &step) == 5) { v4l2_ctrl_t *current = v4l2core_get_control_by_id(id); if(current) { /*check values*/ if(current->control.minimum == min && current->control.maximum == max && current->control.step == step) { char str[max+1]; char fmt[48]; sprintf(fmt,"ID{0x%%*x};CHK{%%*i:%%*i:%%*i:0}==STR{\"%%%is\"}", max); sscanf(line, fmt, str); /*we are only scannig for max chars so this should never happen*/ if(strlen(str) > max) /*FIXME: should also check (minimum +N*step)*/ { fprintf(stderr, "V4L2_CORE: (load_control_profile) string bigger than maximum buffer size (%i > %i)\n", (int) strlen(str), max); if(current->string) free(current->string); current->string = strndup(str, max); /*FIXME: does max includes '\0' ?*/ } else { if(current->string) free(current->string); current->string = strndup(str, strlen(str)+1); } } } } } } set_v4l2_control_values(vd); get_v4l2_control_values(vd); } else { fprintf(stderr, "V4L2_CORE: (load_control_profile) Could not open for %s read: %s\n", filename, strerror(errno)); return (E_FILE_IO_ERR); } fclose(fp); return (E_OK); } guvcview-2.0.2+debian/gview_v4l2core/control_profile.h000066400000000000000000000043511256377215300230200ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef CONTROL_PROFILE_H #define CONTROL_PROFILE_H #include "v4l2_core.h" /* * save the device control values into a profile file * args: * vd - pointer to video device data * filename - profile filename * * asserts: * vd is not null * * returns: error code (0 -E_OK) */ int save_control_profile(v4l2_dev_t *vd, const char *filename); /* * load the device control values from a profile file * args: * vd - pointer to video device data * filename - profile filename * * asserts: * vd is not null * * returns: error code (0 -E_OK) */ int load_control_profile(v4l2_dev_t *vd, const char *filename); #endifguvcview-2.0.2+debian/gview_v4l2core/core_time.c000066400000000000000000000100171256377215300215550ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include "core_time.h" #include "gview.h" /* * time in miliseconds * args: * none * * asserts: * none * * returns: time of day in miliseconds */ //uint32_t ms_time () //{ // struct timeval now; // // if(gettimeofday(&now, NULL) != 0) // { // fprintf(stderr, "V4L2_CORE: ms_time (gettimeofday) error: %s\n", strerror(errno)); // return 0; // } // // uint32_t mst = (uint32_t) now.tv_sec * 1000 + (uint32_t) now.tv_usec / 1000; // // return (mst); //} /* * time in microseconds * args: * none * * asserts: * none * * returns: time of day in microseconds */ //uint64_t us_time(void) //{ // struct timeval now; // // if(gettimeofday(&now, NULL) != 0) // { // fprintf(stderr, "V4L2_CORE: us_time (gettimeofday) error: %s\n", strerror(errno)); // return 0; // } // // uint64_t ust = (uint64_t) now.tv_sec * USEC_PER_SEC + (uint64_t) now.tv_usec; // // return (ust); //} /* * time in nanoseconds * args: * none * * asserts: * none * * returns: time in nanoseconds */ //uint64_t ns_time (void) //{ // struct timespec now; // // if(clock_gettime(CLOCK_REALTIME, &now) != 0) // { // fprintf(stderr, "V4L2_CORE: ns_time (clock_gettime) error: %s\n", strerror(errno)); // return 0; // } // // return ((uint64_t) now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); //} /* * monotonic time in nanoseconds * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t ns_time_monotonic() { struct timespec now; if(clock_gettime(CLOCK_MONOTONIC, &now) != 0) { fprintf(stderr, "V4L2_CORE: ns_time_monotonic (clock_gettime) error: %s\n", strerror(errno)); return 0; } return ((uint64_t)now.tv_sec * NSEC_PER_SEC + (uint64_t) now.tv_nsec); } /* * get current timestamp * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t v4l2core_time_get_timestamp() { return ns_time_monotonic(); } /* void sleep_ms(int ms_time) { gulong sleep_us = ms_time *1000; g_usleep( sleep_us ); } int wait_ms(gboolean* var, gboolean val, __MUTEX_TYPE *mutex, int ms_time, int n_loops) { int n=n_loops; __LOCK_MUTEX(mutex); while( (*var!=val) && ( n > 0 ) ) { __UNLOCK_MUTEX(mutex); n--; sleep_ms( ms_time ); __LOCK_MUTEX(mutex); }; __UNLOCK_MUTEX(mutex); return (n); } */ guvcview-2.0.2+debian/gview_v4l2core/core_time.h000066400000000000000000000044051256377215300215660ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef CORE_TIME_H #define CORE_TIME_H #include #include /* * time in miliseconds * args: * none * * asserts: * none * * returns: time of day in miliseconds */ //uint32_t ms_time (); /* * time in microseconds * args: * none * * asserts: * none * * returns: time of day in microseconds */ //uint64_t us_time(); /* * time in nanoseconds * args: * none * * asserts: * none * * returns: time in nanoseconds */ //uint64_t ns_time (); /* * monotonic time in nanoseconds * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t ns_time_monotonic(); #endif guvcview-2.0.2+debian/gview_v4l2core/dct.c000066400000000000000000000117001256377215300203610ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # dct for Jpeg encoder # # # # Adapted for linux, Paulo Assis, 2007 # ********************************************************************************/ #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "dct.h" #include "gview.h" /* * Level shifting to get 8 bit SIGNED values for the data * args: * data - pointer to data * * asserts: * none * * returns: none */ void levelshift (int16_t * const data) { int16_t i; for (i = 63; i >= 0; --i) data [i] -= 128; } /* * DCT for One block(8x8) * args: * data- pointer to data * * asserts: * none * * returns: none */ void DCT (int16_t *data) { uint16_t i; int32_t x0, x1, x2, x3, x4, x5, x6, x7, x8; int16_t *tmp_ptr; tmp_ptr=data; /* All values are shifted left by 10 */ /* and rounded off to nearest integer */ /* scale[0] = 1 * scale[k] = cos(k*PI/16)*root(2) */ static const uint16_t c1=1420; /* cos PI/16 * root(2) */ static const uint16_t c2=1338; /* cos PI/8 * root(2) */ static const uint16_t c3=1204; /* cos 3PI/16 * root(2) */ static const uint16_t c5=805; /* cos 5PI/16 * root(2) */ static const uint16_t c6=554; /* cos 3PI/8 * root(2) */ static const uint16_t c7=283; /* cos 7PI/16 * root(2) */ static const uint16_t s1=3; static const uint16_t s2=10; static const uint16_t s3=13; /* row pass */ for (i = 8; i > 0; --i) { x8 = data [0] + data [7]; x0 = data [0] - data [7]; x7 = data [1] + data [6]; x1 = data [1] - data [6]; x6 = data [2] + data [5]; x2 = data [2] - data [5]; x5 = data [3] + data [4]; x3 = data [3] - data [4]; x4 = x8 + x5; x8 -= x5; x5 = x7 + x6; x7 -= x6; data [0] = (int16_t) (x4 + x5); data [4] = (int16_t) (x4 - x5); data [2] = (int16_t) ((x8*c2 + x7*c6) >> s2); data [6] = (int16_t) ((x8*c6 - x7*c2) >> s2); data [7] = (int16_t) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s2); data [5] = (int16_t) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s2); data [3] = (int16_t) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s2); data [1] = (int16_t) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s2); data += 8; } data = tmp_ptr;/* return to start of mcu */ /* column pass */ for (i=8; i>0; i--) { x8 = data [0] + data [56]; x0 = data [0] - data [56]; x7 = data [8] + data [48]; x1 = data [8] - data [48]; x6 = data [16] + data [40]; x2 = data [16] - data [40]; x5 = data [24] + data [32]; x3 = data [24] - data [32]; x4 = x8 + x5; x8 -= x5; x5 = x7 + x6; x7 -= x6; data [0] = (int16_t) ((x4 + x5) >> s1); data [32] = (int16_t) ((x4 - x5) >> s1); data [16] = (int16_t) ((x8*c2 + x7*c6) >> s3); data [48] = (int16_t) ((x8*c6 - x7*c2) >> s3); data [56] = (int16_t) ((x0*c7 - x1*c5 + x2*c3 - x3*c1) >> s3); data [40] = (int16_t) ((x0*c5 - x1*c1 + x2*c7 + x3*c3) >> s3); data [24] = (int16_t) ((x0*c3 - x1*c7 - x2*c1 - x3*c5) >> s3); data [8] = (int16_t) ((x0*c1 + x1*c3 + x2*c5 + x3*c7) >> s3); data++; } }guvcview-2.0.2+debian/gview_v4l2core/dct.h000066400000000000000000000047641256377215300204020ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # dct for Jpeg encoder # # # # Adapted for linux, Paulo Assis, 2007 # ********************************************************************************/ #ifndef DCT_H #define DCT_H #include #include /* * Level shifting to get 8 bit SIGNED values for the data * args: * data - pointer to data * * asserts: * none * * returns: none */ void levelshift (int16_t * const data); /* * DCT for One block(8x8) * args: * data- pointer to data * * asserts: * none * * returns: none */ void DCT (int16_t *data); #endifguvcview-2.0.2+debian/gview_v4l2core/frame_decoder.c000066400000000000000000001122001256377215300223630ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "uvc_h264.h" #include "frame_decoder.h" #include "jpeg_decoder.h" #include "colorspaces.h" #include "../config.h" extern int verbosity; /* * Alloc image buffers for decoding video stream * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: error code (0- E_OK) */ int alloc_v4l2_frames(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: allocating frame buffers\n"); /*clean any previous frame buffers*/ clean_v4l2_frames(vd); int ret = E_OK; int i = 0; size_t framebuf_size = 0; int width = vd->format.fmt.pix.width; int height = vd->format.fmt.pix.height; if(width <= 0 || height <= 0) return E_ALLOC_ERR; #ifdef USE_PLANAR_YUV int framesizeIn = (width * height * 3/2); /* 3/2 bytes per pixel*/ #else int framesizeIn = (width * height * 2); /*2 bytes per pixel*/ #endif switch (vd->requested_fmt) { case V4L2_PIX_FMT_H264: /*init h264 context*/ ret = h264_init_decoder(width, height); if(ret) { fprintf(stderr, "V4L2_CORE: couldn't init h264 decoder\n"); return ret; } /*frame queue*/ for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].h264_frame_max_size = width * height; /*1 byte per pixel*/ vd->frame_queue[i].h264_frame = calloc(vd->frame_queue[i].h264_frame_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].h264_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->frame_queue[i].yuv_frame = calloc(framesizeIn, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } #ifdef USE_PLANAR_YUV /*no need for a temp buffer*/ #else /* alloc a temp buffer for colorspace conversion*/ vd->frame_queue[i].tmp_buffer_max_size = width * height * 2; vd->frame_queue[i].tmp_buffer = calloc(vd->frame_queue[i].tmp_buffer_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } #endif } vd->h264_last_IDR = calloc(width * height, sizeof(uint8_t)); if(vd->h264_last_IDR == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->h264_last_IDR_size = 0; /*reset (no frame stored)*/ break; case V4L2_PIX_FMT_JPEG: case V4L2_PIX_FMT_MJPEG: /*init jpeg decoder*/ ret = jpeg_init_decoder(width, height); if(ret) { fprintf(stderr, "V4L2_CORE: couldn't init jpeg decoder\n"); return ret; } /*frame queue*/ for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].yuv_frame = calloc(framesizeIn, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_UYVY: case V4L2_PIX_FMT_YVYU: case V4L2_PIX_FMT_YYUV: case V4L2_PIX_FMT_YUV420: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ case V4L2_PIX_FMT_YVU420: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ case V4L2_PIX_FMT_Y41P: /* only needs 3/2 bytes per pixel but we alloc 2 bytes per pixel*/ case V4L2_PIX_FMT_NV12: case V4L2_PIX_FMT_NV21: case V4L2_PIX_FMT_NV16: case V4L2_PIX_FMT_NV61: case V4L2_PIX_FMT_SPCA501: case V4L2_PIX_FMT_SPCA505: case V4L2_PIX_FMT_SPCA508: framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { /*FIXME: do we need the temp buffer ?*/ /* alloc a temp buffer for colorspace conversion*/ vd->frame_queue[i].tmp_buffer_max_size = width * height * 2; vd->frame_queue[i].tmp_buffer = calloc(vd->frame_queue[i].tmp_buffer_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_GREY: framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { /* alloc a temp buffer for colorspace conversion*/ vd->frame_queue[i].tmp_buffer_max_size = width * height; /* 1 byte per pixel*/ vd->frame_queue[i].tmp_buffer = calloc(vd->frame_queue[i].tmp_buffer_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_Y10BPACK: case V4L2_PIX_FMT_Y16: framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { /* alloc a temp buffer for colorspace conversion*/ vd->frame_queue[i].tmp_buffer_max_size = framesizeIn; /* 2 byte per pixel*/ vd->frame_queue[i].tmp_buffer = calloc(vd->frame_queue[i].tmp_buffer_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_YUYV: /* * YUYV doesn't need a temp buffer but we will set it if/when * video processing disable is set (bayer processing). * (logitech cameras only) */ framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_SGBRG8: /*0*/ case V4L2_PIX_FMT_SGRBG8: /*1*/ case V4L2_PIX_FMT_SBGGR8: /*2*/ case V4L2_PIX_FMT_SRGGB8: /*3*/ /* * Raw 8 bit bayer * when grabbing use: * bayer_to_rgb24(bayer_data, RGB24_data, width, height, 0..3) * rgb2yuyv(RGB24_data, vd->framebuffer, width, height) */ framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { /* alloc a temp buffer for converting to YUYV*/ /* rgb buffer for decoding bayer data*/ vd->frame_queue[i].tmp_buffer_max_size = width * height * 3; vd->frame_queue[i].tmp_buffer = calloc(vd->frame_queue[i].tmp_buffer_max_size, sizeof(uint8_t)); if(vd->frame_queue[i].tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; case V4L2_PIX_FMT_RGB24: case V4L2_PIX_FMT_BGR24: /*convert directly from raw_frame*/ framebuf_size = framesizeIn; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].yuv_frame = calloc(framebuf_size, sizeof(uint8_t)); if(vd->frame_queue[i].yuv_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); exit(-1); } } break; default: /* * we check formats against a support formats list * so we should never have to alloc for a unknown format */ fprintf(stderr, "V4L2_CORE: (v4l2uvc.c) should never arrive (1)- exit fatal !!\n"); ret = E_UNKNOWN_ERR; if(vd->h264_last_IDR) free(vd->h264_last_IDR); vd->h264_last_IDR = NULL; /*frame queue*/ for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].raw_frame = NULL; if(vd->frame_queue[i].yuv_frame) free(vd->frame_queue[i].yuv_frame); vd->frame_queue[i].yuv_frame = NULL; if(vd->frame_queue[i].tmp_buffer) free(vd->frame_queue[i].tmp_buffer); vd->frame_queue[i].tmp_buffer = NULL; if(vd->frame_queue[i].h264_frame) free(vd->frame_queue[i].h264_frame); vd->frame_queue[i].h264_frame = NULL; } return (ret); } for(i=0; iframe_queue_size; ++i) { int j = 0; /* set framebuffer to black (y=0x00 u=0x80 v=0x80) by default*/ #ifdef USE_PLANAR_YUV uint8_t *pframe = vd->frame_queue[i].yuv_frame; for (j=0; jframe_queue[i].yuv_frame[j]=0x00; //Y vd->frame_queue[i].yuv_frame[j+1]=0x80;//U vd->frame_queue[i].yuv_frame[j+2]=0x00;//Y vd->frame_queue[i].yuv_frame[j+3]=0x80;//V } #endif } return (ret); } /* * free image buffers for decoding video stream * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: none */ void clean_v4l2_frames(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); int i = 0; for(i=0; iframe_queue_size; ++i) { vd->frame_queue[i].raw_frame = NULL; if(vd->frame_queue[i].tmp_buffer) { free(vd->frame_queue[i].tmp_buffer); vd->frame_queue[i].tmp_buffer = NULL; } if(vd->frame_queue[i].h264_frame) { free(vd->frame_queue[i].h264_frame); vd->frame_queue[i].h264_frame = NULL; } if(vd->frame_queue[i].yuv_frame) { free(vd->frame_queue[i].yuv_frame); vd->frame_queue[i].yuv_frame = NULL; } } if(vd->h264_last_IDR) { free(vd->h264_last_IDR); vd->h264_last_IDR = NULL; } if(vd->h264_SPS) { free(vd->h264_SPS); vd->h264_SPS = NULL; } if(vd->h264_PPS) { free(vd->h264_PPS); vd->h264_PPS = NULL; } if(vd->requested_fmt == V4L2_PIX_FMT_H264) h264_close_decoder(); if(vd->requested_fmt == V4L2_PIX_FMT_JPEG || vd->requested_fmt == V4L2_PIX_FMT_MJPEG) jpeg_close_decoder(); } /* * check buff (*buff) of size (size) for NALU type (type) * args: * type - NALU type * buff - buffer with MJPG uvc frame containing h264 data * size - buffer size * * asserts: * buff is not null * * returns: buffer pointer to NALU type data if found * NULL if not found */ static uint8_t* check_NALU(uint8_t type, uint8_t *buff, int size) { /*asserts*/ assert(buff != NULL); uint8_t *sp = buff; uint8_t *nal = NULL; //search for NALU of type for(sp = buff; sp < buff + size - 5; ++sp) { if(sp[0] == 0x00 && sp[1] == 0x00 && sp[2] == 0x00 && sp[3] == 0x01 && (sp[4] & 0x1F) == type) { /*found it*/ nal = sp + 4; break; } } return nal; } /* * parses a buff (*buff) of size (size) for NALU type (type) * args: * type - NALU type * NALU - pointer to pointer to NALU data * buff - pointer to buffer containing h264 data muxed in MJPG container * size - buff size * * asserts: * buff is not null * * returns: NALU size and sets pointer (NALU) to NALU data * -1 if no NALU found */ static int parse_NALU(uint8_t type, uint8_t **NALU, uint8_t *buff, int size) { /*asserts*/ assert(buff != NULL); int nal_size = 0; uint8_t *sp = NULL; //search for NALU of type uint8_t *nal = check_NALU(type, buff, size); if(nal == NULL) { fprintf(stderr, "V4L2_CORE: (uvc H264) could not find NALU of type %i in buffer\n", type); return -1; } //search for end of NALU for(sp = nal; sp < buff + size - 4; ++sp) { if(sp[0] == 0x00 && sp[1] == 0x00 && sp[2] == 0x00 && sp[3] == 0x01) { nal_size = sp - nal; break; } } if(!nal_size) nal_size = buff + size - nal; *NALU = calloc(nal_size, sizeof(uint8_t)); if(*NALU == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (parse_NALU): %s\n", strerror(errno)); exit(-1); } memcpy(*NALU, nal, nal_size); //char test_filename2[20]; //snprintf(test_filename2, 20, "frame_nalu-%i.raw", type); //SaveBuff (test_filename2, nal_size, *NALU); return nal_size; } /* * demux a H264 frame from a MJPG container * args: * h264_data - pointer to h264 data * buff pointer to buffer with h264 muxed in MJPG container * size - buff size * h264_max_size - maximum size allowed by h264_data buffer * * asserts: * h264_data is not null * buff is not null * * returns: data size and copies NALU data to h264 buffer */ static int demux_uvcH264(uint8_t *h264_data, uint8_t *buff, int size, int h264_max_size) { /*asserts*/ assert(h264_data != NULL); assert(buff != NULL); uint8_t *sp = NULL; uint8_t *spl= NULL; uint8_t *epl= NULL; uint8_t *header = NULL; uint8_t *ph264 = h264_data; //search for first APP4 marker for(sp = buff; sp < buff + size - 2; ++sp) { if(sp[0] == 0xFF && sp[1] == 0xE4) { spl = sp + 2; //exclude APP4 marker break; } } /*(in big endian) *includes payload size + header + 6 bytes(2 length + 4 payload size) */ uint16_t length = 0; length = (uint16_t) spl[0] << 8; length |= (uint16_t) spl[1]; header = spl + 2; /*in litle endian*/ uint16_t header_length = header[2]; header_length |= header[3] << 8; spl = header + header_length; /*in litle endian*/ uint32_t payload_size = 0; payload_size = ((uint32_t) spl[0]) << 0; payload_size |= ((uint32_t) spl[1]) << 8; payload_size |= ((uint32_t) spl[2]) << 16; payload_size |= ((uint32_t) spl[3]) << 24; spl += 4; /*start of payload*/ epl = spl + payload_size; /*end of payload*/ if(epl > buff + size) { fprintf(stderr, "V4L2_CORE: payload size bigger than buffer, clipped to buffer size (demux_uvcH264)\n"); epl = buff + size; } sp = spl; uint32_t max_seg_size = 64*1024; /*copy first segment*/ length -= header_length + 6; if(length <= max_seg_size) { /*copy the segment to h264 buffer*/ memcpy(ph264, sp, length); ph264 += length; sp += length; } /*copy other segments*/ while( epl > sp) { if(sp[0] != 0xFF || sp[1] != 0xE4) { fprintf(stderr, "V4L2_CORE: expected APP4 marker but none found (demux_uvcH264)\n"); return (ph264 - h264_data); } else { length = (uint16_t) sp[2] << 8; length |= (uint16_t) sp[3]; length -= 2; /*remove the 2 bytes from length*/ } sp += 4; /*APP4 marker + length*/ if((length != max_seg_size) && (verbosity > 1)) { printf("V4L2_CORE: segment length is %i (demux_uvcH264)\n", length); } /*copy the segment to h264 buffer*/ memcpy(ph264, sp, length); ph264 += length; sp += length; if((epl-sp) > 0 && (epl-sp < 4)) { fprintf(stderr, "V4L2_CORE: payload ended unexpectedly (demux_uvcH264)\n"); return (ph264 - h264_data); } } if(epl-sp > 0) { fprintf(stderr, "V4L2_CORE: copy segment with %i bytes (demux_uvcH264)\n", (int) (epl-sp)); /*copy the remaining data*/ memcpy(ph264, sp, epl-sp); ph264 += epl-sp; } return (ph264 - h264_data); } /* * Store the SPS and PPS NALUs of uvc H264 stream * args: * vd - pointer to device data * frame - pointer to frame buffer * * asserts: * vd is not null * * returns: error code (0 - E_OK) */ static int store_extra_data(v4l2_dev_t *vd, v4l2_frame_buff_t *frame) { /*asserts*/ assert(vd != NULL); if(vd->h264_SPS == NULL) { vd->h264_SPS_size = parse_NALU( 7, &vd->h264_SPS, frame->h264_frame, (int) frame->h264_frame_size); if(vd->h264_SPS_size <= 0 || vd->h264_SPS == NULL) { fprintf(stderr, "V4L2_CORE: (uvc H264) Could not find SPS (NALU type: 7)\n"); return E_NO_DATA; } else if(verbosity > 0) printf("V4L2_CORE: (uvc H264) stored SPS %i bytes of data\n", vd->h264_SPS_size); } if(vd->h264_PPS == NULL) { vd->h264_PPS_size = parse_NALU( 8, &vd->h264_PPS, frame->h264_frame, (int) frame->h264_frame_size); if(vd->h264_PPS_size <= 0 || vd->h264_PPS == NULL) { fprintf(stderr, "Could not find PPS (NALU type: 8)\n"); return E_NO_DATA; } else if(verbosity > 0) printf("V4L2_CORE: (uvc H264) stored PPS %i bytes of data\n", vd->h264_PPS_size); } return E_OK; } /* * check/store the last IDR frame * args: * vd - pointer to device data * frame - pointer to frame buffer * * asserts: * vd is not NULL * * return: TRUE (1) if IDR frame * FALSE(0) if non IDR frame */ static uint8_t is_h264_keyframe (v4l2_dev_t *vd, v4l2_frame_buff_t *frame) { //check for a IDR frame type if(check_NALU(5, frame->h264_frame, frame->h264_frame_size) != NULL) { memcpy(vd->h264_last_IDR, frame->h264_frame, frame->h264_frame_size); vd->h264_last_IDR_size = frame->h264_frame_size; if(verbosity > 1) printf("V4L2_CORE: (uvc H264) IDR frame found in frame %" PRIu64 "\n", vd->frame_index); return TRUE; } return FALSE; } /* * demux h264 data from muxed frame * args: * h264_data - pointer to demuxed h264 data * buffer - pointer to muxed h264 data * size - buffer size * h264_max_size - maximum size allowed by h264_data buffer * * asserts: * h264_data is not null * buffer is not null * * return: demuxed h264 frame data size */ static int demux_h264(uint8_t* h264_data, uint8_t* buffer, int size, int h264_max_size) { /*asserts*/ assert(h264_data != NULL); assert(buffer != NULL); /* * if h264 is not supported return 0 (empty frame) */ if(h264_get_support() == H264_NONE) return 0; /* * if it's a muxed stream we must demux it first */ if(h264_get_support() == H264_MUXED) { return demux_uvcH264(h264_data, buffer, size, h264_max_size); } /* * (H264_FRAME) store the raw frame in h264 frame buffer */ if(size > h264_max_size) { fprintf(stderr, "V4L2_CORE: (uvc H264) h264 data exceeds max of %i cliping\n", h264_max_size); size = h264_max_size; } memcpy(h264_data, buffer, size); return size; } /* * decode video stream ( from raw_frame to frame buffer (yuyv format)) * args: * vd - pointer to device data * frame - pointer to frame buffer * * asserts: * vd is not null * * returns: error code ( 0 - E_OK) */ int decode_v4l2_frame(v4l2_dev_t *vd, v4l2_frame_buff_t *frame) { /*asserts*/ assert(vd != NULL); if(!frame->raw_frame || frame->raw_frame_size == 0) { fprintf(stderr, "V4L2_CORE: not decoding empty raw frame (frame of size %i at 0x%p)\n", (int) frame->raw_frame_size, frame->raw_frame); return E_DECODE_ERR; } if(verbosity > 3) printf("V4L2_CORE: decoding raw frame of size %i at 0x%p\n", (int) frame->raw_frame_size, frame->raw_frame ); int ret = E_OK; int width = vd->format.fmt.pix.width; int height = vd->format.fmt.pix.height; frame->isKeyframe = 0; /*reset*/ /* * use the requested format since it may differ * from format.fmt.pix.pixelformat (muxed H264) */ int format = vd->requested_fmt; int framesizeIn =(width * height << 1);//2 bytes per pixel switch (format) { case V4L2_PIX_FMT_H264: /* * get the h264 frame in the tmp_buffer */ frame->h264_frame_size = demux_h264( frame->h264_frame, frame->raw_frame, frame->raw_frame_size, frame->h264_frame_max_size); /* * store SPS and PPS info (usually the first two NALU) * and check/store the last IDR frame */ store_extra_data(vd, frame); /* * check for keyframe and store it */ frame->isKeyframe = is_h264_keyframe(vd, frame); //decode if we already have a IDR frame if(vd->h264_last_IDR_size > 0) { #ifdef USE_PLANAR_YUV /*no need to convert output*/ h264_decode(frame->yuv_frame, frame->h264_frame, frame->h264_frame_size); #else /* decode (h264) to frame->tmp_buffer (yuv420p)*/ h264_decode(frame->tmp_buffer, frame->h264_frame, frame->h264_frame_size); /* convert to yuyv*/ yu12_to_yuyv (frame->yuv_frame, frame->tmp_buffer, width, height); #endif } break; case V4L2_PIX_FMT_JPEG: case V4L2_PIX_FMT_MJPEG: if(frame->raw_frame_size <= HEADERFRAME1) { // Prevent crash on empty image fprintf(stderr, "V4L2_CORE: (jpeg decoder) Ignoring empty buffer\n"); ret = E_DECODE_ERR; return (ret); } ret = jpeg_decode(frame->yuv_frame, frame->raw_frame, frame->raw_frame_size); //memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); //ret = jpeg_decode(&frame->yuv_frame, frame->tmp_buffer, width, height); //if ( ret < 0) //{ // fprintf(stderr, "V4L2_CORE: jpeg decoder exit with error (%i) (res: %ix%i - %x)\n", ret, width, height, vd->format.fmt.pix.pixelformat); // return E_DECODE_ERR; //} if(verbosity > 3) fprintf(stderr, "V4L2_CORE: (jpeg decoder) decode frame of size %i\n", ret); ret = E_OK; break; case V4L2_PIX_FMT_UYVY: #ifdef USE_PLANAR_YUV uyvy_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (uyvy decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); uyvy_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_YVYU: #ifdef USE_PLANAR_YUV yvyu_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (yvyu decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); yvyu_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_YYUV: #ifdef USE_PLANAR_YUV yyuv_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (yyuv decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); yyuv_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_YUV420: #ifdef USE_PLANAR_YUV if(frame->raw_frame_size > (width * height * 3/2)) frame->raw_frame_size = width * height * 3/2; memcpy(frame->yuv_frame, frame->raw_frame, frame->raw_frame_size); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (yuv420 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); yu12_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_YVU420: #ifdef USE_PLANAR_YUV yv12_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (yvu420 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); yvu420_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_NV12: #ifdef USE_PLANAR_YUV nv12_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (nv12 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); nv12_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_NV21: #ifdef USE_PLANAR_YUV nv21_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (nv21 decoder) cliping unexpected large buffer (%i bytes).\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); nv21_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_NV16: #ifdef USE_PLANAR_YUV nv16_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (nv16 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); nv16_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_NV61: #ifdef USE_PLANAR_YUV nv61_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (nv61 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); nv61_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_Y41P: #ifdef USE_PLANAR_YUV y41p_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (y41p decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); y41p_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_GREY: #ifdef USE_PLANAR_YUV grey_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (grey decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); grey_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_Y10BPACK: #ifdef USE_PLANAR_YUV y10b_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (y10b decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); y10b_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_Y16: #ifdef USE_PLANAR_YUV y16_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (y16 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); y16_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_SPCA501: #ifdef USE_PLANAR_YUV s501_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (spca501 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); s501_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_SPCA505: #ifdef USE_PLANAR_YUV s505_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (spca505 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); s505_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_SPCA508: #ifdef USE_PLANAR_YUV s508_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else /*FIXME: do we need the tmp_buffer or can we just use the raw_frame?*/ if(frame->raw_frame_size > frame->tmp_buffer_max_size) { // Prevent crash on very large image fprintf(stderr, "V4L2_CORE: (spca508 decoder) cliping unexpected large buffer (%i bytes)\n", (int) frame->raw_frame_size); memcpy(frame->tmp_buffer, frame->raw_frame, frame->tmp_buffer_max_size); } else memcpy(frame->tmp_buffer, frame->raw_frame, frame->raw_frame_size); s508_to_yuyv(frame->yuv_frame, frame->tmp_buffer, width, height); #endif break; case V4L2_PIX_FMT_YUYV: #ifdef USE_PLANAR_YUV if(vd->isbayer>0) { if (!(frame->tmp_buffer)) { /* rgb buffer for decoding bayer data*/ frame->tmp_buffer_max_size = width * height * 3; frame->tmp_buffer = calloc(frame->tmp_buffer_max_size, sizeof(uint8_t)); if(frame->tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_frame_decode): %s\n", strerror(errno)); exit(-1); } } /*convert raw bayer to iyuv*/ bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, vd->bayer_pix_order); rgb24_to_yu12(frame->yuv_frame, frame->tmp_buffer, width, height); } else yuyv_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else if(vd->isbayer>0) { if (!(frame->tmp_buffer)) { /* rgb buffer for decoding bayer data*/ frame->tmp_buffer_max_size = width * height * 3; frame->tmp_buffer = calloc(frame->tmp_buffer_max_size, sizeof(uint8_t)); if(frame->tmp_buffer == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_frame_decode): %s\n", strerror(errno)); exit(-1); } } bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, vd->bayer_pix_order); // raw bayer is only available in logitech cameras in yuyv mode rgb2yuyv (frame->tmp_buffer, frame->yuv_frame, width, height); } else { if (frame->raw_frame_size > framesizeIn) memcpy(frame->yuv_frame, frame->raw_frame, (size_t) framesizeIn); else memcpy(frame->yuv_frame, frame->raw_frame, frame->raw_frame_size); } #endif break; case V4L2_PIX_FMT_SGBRG8: //0 bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, 0); #ifdef USE_PLANAR_YUV rgb24_to_yu12(frame->yuv_frame, frame->tmp_buffer, width, height); #else rgb2yuyv (frame->tmp_buffer, frame->yuv_frame, width, height); #endif break; case V4L2_PIX_FMT_SGRBG8: //1 bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, 1); #ifdef USE_PLANAR_YUV rgb24_to_yu12(frame->yuv_frame, frame->tmp_buffer, width, height); #else rgb2yuyv (frame->tmp_buffer, frame->yuv_frame, width, height); #endif break; case V4L2_PIX_FMT_SBGGR8: //2 bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, 2); #ifdef USE_PLANAR_YUV rgb24_to_yu12(frame->yuv_frame, frame->tmp_buffer, width, height); #else rgb2yuyv (frame->tmp_buffer, frame->yuv_frame, width, height); #endif break; case V4L2_PIX_FMT_SRGGB8: //3 bayer_to_rgb24 (frame->raw_frame, frame->tmp_buffer, width, height, 3); #ifdef USE_PLANAR_YUV rgb24_to_yu12(frame->yuv_frame, frame->tmp_buffer, width, height); #else rgb2yuyv (frame->tmp_buffer, frame->yuv_frame, width, height); #endif break; case V4L2_PIX_FMT_RGB24: #ifdef USE_PLANAR_YUV rgb24_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else rgb2yuyv(frame->raw_frame, frame->yuv_frame, width, height); #endif break; case V4L2_PIX_FMT_BGR24: #ifdef USE_PLANAR_YUV bgr24_to_yu12(frame->yuv_frame, frame->raw_frame, width, height); #else bgr2yuyv(frame->raw_frame, frame->yuv_frame, width, height); #endif break; default: fprintf(stderr, "V4L2_CORE: error decoding frame: unknown format: %i\n", format); ret = E_UNKNOWN_ERR; break; } return ret; } guvcview-2.0.2+debian/gview_v4l2core/frame_decoder.h000066400000000000000000000050261256377215300223770ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef FRAME_DECODER_H #define FRAME_DECODER_H #include "gviewv4l2core.h" #include "v4l2_core.h" /* * Alloc image buffers for decoding video stream * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: error code (0- E_OK) */ int alloc_v4l2_frames(v4l2_dev_t *vd); /* * decode video stream ( from raw_frame to frame buffer (yuyv format)) * args: * vd - pointer to device data * * asserts: * vd is not null * * returns: error code (E_OK) */ int decode_v4l2_frame(v4l2_dev_t *vd, v4l2_frame_buff_t *frame); /* * free image buffers for decoding video stream * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: none */ void clean_v4l2_frames(v4l2_dev_t *vd); #endifguvcview-2.0.2+debian/gview_v4l2core/gviewv4l2core.h000066400000000000000000000632611256377215300223270ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GVIEWV4L2CORE_H #define GVIEWV4L2CORE_H #include #include #include #include #include #include #include #include /*make sure we support c++*/ __BEGIN_DECLS /* * LOGITECH Dynamic controls defs */ #define V4L2_CID_BASE_EXTCTR 0x0A046D01 #define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR //#define V4L2_CID_PAN_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH //#define V4L2_CID_TILT_RELATIVE_LOGITECH V4L2_CID_BASE_LOGITECH+1 #define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2 /*this should realy be replaced by V4L2_CID_FOCUS_ABSOLUTE in libwebcam*/ #define V4L2_CID_FOCUS_LOGITECH V4L2_CID_BASE_LOGITECH+3 #define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4 #define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5 #define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70 #define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71 #define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH /* * Error Codes */ #define E_OK (0) #define E_ALLOC_ERR (-1) #define E_QUERYCAP_ERR (-2) #define E_READ_ERR (-3) #define E_MMAP_ERR (-4) #define E_QUERYBUF_ERR (-5) #define E_QBUF_ERR (-6) #define E_DQBUF_ERR (-7) #define E_STREAMON_ERR (-8) #define E_STREAMOFF_ERR (-9) #define E_FORMAT_ERR (-10) #define E_REQBUFS_ERR (-11) #define E_DEVICE_ERR (-12) #define E_SELECT_ERR (-13) #define E_SELECT_TIMEOUT_ERR (-14) #define E_FBALLOC_ERR (-15) #define E_NO_STREAM_ERR (-16) #define E_NO_DATA (-17) #define E_NO_CODEC (-18) #define E_DECODE_ERR (-19) #define E_BAD_TABLES_ERR (-20) #define E_NO_SOI_ERR (-21) #define E_NOT_8BIT_ERR (-22) #define E_BAD_WIDTH_OR_HEIGHT_ERR (-23) #define E_TOO_MANY_COMPPS_ERR (-24) #define E_ILLEGAL_HV_ERR (-25) #define E_QUANT_TBL_SEL_ERR (-26) #define E_NOT_YCBCR_ERR (-27) #define E_UNKNOWN_CID_ERR (-28) #define E_WRONG_MARKER_ERR (-29) #define E_NO_EOI_ERR (-30) #define E_FILE_IO_ERR (-31) #define E_UNKNOWN_ERR (-40) /* * stream status codes */ #define STRM_STOP (0) #define STRM_REQ_STOP (1) #define STRM_OK (2) /* * IO methods */ #define IO_MMAP 1 #define IO_READ 2 /* * Frame status */ #define FRAME_READY (0) #define FRAME_DECODING (1) #define FRAME_DONE (2) /* * software autofocus sort method * quick sort * shell sort * insert sort * bubble sort */ #define AUTOF_SORT_QUICK 1 #define AUTOF_SORT_SHELL 2 #define AUTOF_SORT_INSERT 3 #define AUTOF_SORT_BUBBLE 4 /* * Image Formats */ #define IMG_FMT_RAW (0) #define IMG_FMT_JPG (1) #define IMG_FMT_PNG (2) #define IMG_FMT_BMP (3) /* * buffer number (for driver mmap ops) */ #define NB_BUFFER 4 /*jpeg header def*/ #define HEADERFRAME1 0xaf /* * set ioctl retries to 4 */ #define IOCTL_RETRY 4 /* A.8. Video Class-Specific Request Codes */ #define UVC_RC_UNDEFINED 0x00 #define UVC_SET_CUR 0x01 #define UVC_GET_CUR 0x81 #define UVC_GET_MIN 0x82 #define UVC_GET_MAX 0x83 #define UVC_GET_RES 0x84 #define UVC_GET_LEN 0x85 #define UVC_GET_INFO 0x86 #define UVC_GET_DEF 0x87 /* * h264 probe commit struct (uvc 1.1) */ typedef struct _uvcx_video_config_probe_commit_t { uint32_t dwFrameInterval; uint32_t dwBitRate; uint16_t bmHints; uint16_t wConfigurationIndex; uint16_t wWidth; uint16_t wHeight; uint16_t wSliceUnits; uint16_t wSliceMode; uint16_t wProfile; uint16_t wIFramePeriod; uint16_t wEstimatedVideoDelay; uint16_t wEstimatedMaxConfigDelay; uint8_t bUsageType; uint8_t bRateControlMode; uint8_t bTemporalScaleMode; uint8_t bSpatialScaleMode; uint8_t bSNRScaleMode; uint8_t bStreamMuxOption; uint8_t bStreamFormat; uint8_t bEntropyCABAC; uint8_t bTimestamp; uint8_t bNumOfReorderFrames; uint8_t bPreviewFlipped; uint8_t bView; uint8_t bReserved1; uint8_t bReserved2; uint8_t bStreamID; uint8_t bSpatialLayerRatio; uint16_t wLeakyBucketSize; } __attribute__((__packed__)) uvcx_video_config_probe_commit_t; /* * v4l2 stream capability data */ typedef struct _v4l2_stream_cap_t { int width; //width int height; //height int *framerate_num; //list of numerator values - should be 1 in almost all cases int *framerate_denom; //list of denominator values - gives fps int numb_frates; //number of frame rates (numerator and denominator lists size) } v4l2_stream_cap_t; /* * v4l2 stream format data */ typedef struct _v4l2_stream_format_t { uint8_t dec_support; //decoder support (1-supported; 0-not supported) int format; //v4l2 pixel format char fourcc[5]; //corresponding fourcc (mode) int numb_res; //available number of resolutions for format (v4l2_stream_cap_t list size) v4l2_stream_cap_t *list_stream_cap; //list of stream capabilities for format } v4l2_stream_formats_t; /* * v4l2 control data */ typedef struct _v4l2_ctrl_t { struct v4l2_queryctrl control; struct v4l2_querymenu *menu; int32_t class; int32_t value; //also used for string max size int64_t value64; char *string; /*localization*/ char *name; /*gettext translated name*/ int menu_entries; char **menu_entry; /*gettext translated menu entry name*/ //next control in the list struct _v4l2_ctrl_t *next; } v4l2_ctrl_t; /* * v4l2 device system data */ typedef struct _v4l2_dev_sys_data_t { char *device; char *name; char *driver; char *location; uint32_t vendor; uint32_t product; int valid; int current; uint64_t busnum; uint64_t devnum; } v4l2_dev_sys_data_t; /* * frame buffer struct */ typedef struct _v4l2_frame_buff_t { int index; //buffer index int status; //frame status {FRAME_DECODING; FRAME_DONE; FRAME_READY} uint8_t isKeyframe; // current buffer contains a keyframe (h264 IDR) uint8_t *raw_frame; // pointer to raw frame size_t raw_frame_size; // raw frame size (bytes) size_t raw_frame_max_size; //maximum size for raw frame (bytes) uint8_t *yuv_frame; // pointer to decoded yuv frame uint8_t *h264_frame; // pointer to regular or demultiplexed h264 frame size_t h264_frame_size; // h264 frame size (bytes) size_t h264_frame_max_size; //size limit for h264 frame (bytes) uint64_t timestamp; // captured frame timestamp uint8_t *tmp_buffer; //temporary buffer used in decoding size_t tmp_buffer_max_size; //maximum size for temp buffer (bytes) } v4l2_frame_buff_t; /* * v4l2 devices list data */ typedef struct _v4l2_device_list_t { struct udev *udev; // pointer to a udev struct (lib udev) struct udev_monitor *udev_mon; // udev monitor int udev_fd; // udev monitor file descriptor v4l2_dev_sys_data_t* list_devices; // list of available v4l2 devices int num_devices; // number of available v4l2 devices } v4l2_device_list; /* * ioctl with a number of retries in the case of I/O failure * args: * fd - device descriptor * IOCTL_X - ioctl reference * arg - pointer to ioctl data * * asserts: * none * * returns - ioctl result */ int xioctl(int fd, int IOCTL_X, void *arg); /* * set verbosity level * args: * level - verbosity level (def = 0) * * asserts: * none * * returns - void */ void v4l2core_set_verbosity(int level); /* * define fps values * args: * num - fps numerator * denom - fps denominator * * asserts: * none * * returns - void */ void v4l2core_define_fps(int num, int denom); /* * get requested fps numerator * args: * none * * asserts: * none * * returns - requested fps numerator */ int v4l2core_get_fps_num(); /* * get requested fps denominator * args: * none * * asserts: * none * * returns - requested fps denominator */ int v4l2core_get_fps_denom(); /* * get device available number of formats * args: * none * * asserts: * none * * returns - number of formats for device */ int v4l2core_get_number_formats(); /* * sets bayer pixel order * args: * order - pixel order * * asserts: * none * * returns - void */ void v4l2core_set_bayer_pix_order(uint8_t order); /* * gets bayer pixel order * args: * none * * asserts: * none * * returns - bayer pixel order */ uint8_t v4l2core_get_bayer_pix_order(); /* * flags bayer mode * args: * flag - 1 if we are streaming bayer data (0 otherwise) * * asserts: * none * * returns - void */ void v4l2core_set_isbayer(uint8_t flag); /* * gets bayer pixel order * args: * none * * asserts: * none * * returns - isbayer flag */ uint8_t v4l2core_get_isbayer(); /* * gets current device index * args: * none * * asserts: * none * * returns - device index */ int v4l2core_get_this_device_index(); /* * disable libv4l2 calls * args: * none * * asserts: * none * * returns void */ void v4l2core_disable_libv4l2(); /* * enable libv4l2 calls (default) * args: * none * * asserts: * none * * returns void */ void v4l2core_enable_libv4l2(); /* * get pixelformat from fourcc * args: * fourcc - fourcc code for format * * asserts: * none * * returns: v4l2 pixel format */ int v4l2core_fourcc_2_v4l2_pixelformat(const char *fourcc); /* * get real fps * args: * none * * asserts: * none * * returns: double with real fps value */ double v4l2core_get_realfps(); /* * Set v4l2 capture method * args: * method - capture method (IO_READ or IO_MMAP) * * asserts: * none * * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) */ void v4l2core_set_capture_method(int method); /* * Initiate video device data with default values * args: * device - device name (e.g: "/dev/video0") * * asserts: * none * * returns: error code ( < 0) on error */ int v4l2core_init_dev(const char *device); /* * get device control list * args: * none * * asserts: * none * * return: pointer to first control in the list */ v4l2_ctrl_t *v4l2core_get_control_list(); /* * get stream frame format list for device * args: * none * * asserts: * vd is not null * * return: pointer to first format in the list */ v4l2_stream_formats_t *v4l2core_get_formats_list(); /* * get videodevice string * args: * none * * asserts: * none * * return: videodevice string */ const char *v4l2core_get_videodevice(); /* * get device pan step value * args: * none * * asserts: * none * * return: pan step value */ int v4l2core_get_pan_step(); /* * get device tilt step value * args: * none * * asserts: * none * * return: tilt step value */ int v4l2core_get_tilt_step(); /* * set device pan step value * args: * step - pan step value * * asserts: * none * * return: none */ void v4l2core_set_pan_step(int step); /* * set device tilt step value * args: * step -tilt step value * * asserts: * none * * return: none */ void v4l2core_set_tilt_step(int step); /* * Initiate the device list (with udev monitoring) * args: * none * * asserts: * none * * returns: none */ void v4l2core_init_device_list(); /* * get the device list data * args: * none * * asserts: * none * * returns: pointer to device list data */ v4l2_device_list *v4l2core_get_device_list(); /* * get the device index in device list * args: * videodevice - string with videodevice node (e.g: /dev/video0) * * asserts: * none * * returns: * videodevice index in device list [0 - num_devices[ or -1 on error */ int v4l2core_get_device_index(const char *videodevice); /* * check for new devices * args: * none * * asserts: * none * * returns: true(1) if device list was updated, false(0) otherwise */ int v4l2core_check_device_list_events(); /* * free v4l2 devices list * args: * none * * asserts: * none * * returns: void */ void v4l2core_close_v4l2_device_list(); /* * get requested frame format * args: * none * * asserts: * none * * returns: requested frame format */ int v4l2core_get_requested_frame_format(); /* * get has_pantilt_id flag * args: * none * * asserts: * none * * returns: has_pantilt_id flag */ int v4l2core_has_pantilt_id(); /* * get has_focus_control_id flag * args: * none * * asserts: * none * * returns: has_focus_control_id flag */ int v4l2core_has_focus_control_id(); /* * get frame width * args: * none * * asserts: * vd is not null * * returns: frame width */ int v4l2core_get_frame_width(); /* * get frame height * args: * none * * asserts: * vd is not null * * returns: frame height */ int v4l2core_get_frame_height(); /* get frame format index from format list * args: * format - v4l2 pixel format * * asserts: * none * * returns: format list index or -1 if not available */ int v4l2core_get_frame_format_index(int format); /* get resolution index for format index from format list * args: * format - format index from format list * width - requested width * height - requested height * * asserts: * none * * returns: resolution list index for format index or -1 if not available */ int v4l2core_get_format_resolution_index(int format, int width, int height); /* * prepare a valid format (first in the format list) * args: * none * * asserts: * none * * returns: none */ void v4l2core_prepare_valid_format(); /* * prepare new format * args: * new_format - new format * * asserts: * none * * returns: none */ void v4l2core_prepare_new_format(int new_format); /* * prepare valid resolution (first in the resolution list for the format) * args: * none * * asserts: * none * * returns: none */ void v4l2core_prepare_valid_resolution(); /* * prepare new resolution * args: * new_width - new width * new_height - new height * * asserts: * none * * returns: none */ void v4l2core_prepare_new_resolution(int new_width, int new_height); /* * update the current format (pixelformat, width and height) * args: * none * * asserts: * none * * returns: * error code */ int v4l2core_update_current_format(); /* * gets the next video frame (must be released after processing) * args: * none * * asserts: * none * * returns: pointer frame buffer (NULL on error) */ v4l2_frame_buff_t *v4l2core_get_frame(); /* * releases the video frame (so that it can be reused by the driver) * args: * frame - pointer to decoded frame buffer * * asserts: * none * * returns: error code (E_OK) */ int v4l2core_release_frame(v4l2_frame_buff_t *frame); /* * gets the next video frame and decodes it * args: * none * * returns: pointer to decoded frame buffer ( NULL on error) */ v4l2_frame_buff_t *v4l2core_get_decoded_frame(); /* * clean v4l2 buffers * args: * none * * asserts: * none * * return: none */ void v4l2core_clean_buffers(); /* * cleans video device data and allocations * args: * none * * asserts: * none * * returns: void */ void v4l2core_close_dev(); /* * request a fps update * args: * none * * asserts: * none * * returns: none */ void v4l2core_request_framerate_update(); /* * gets video device defined frame rate (not real - consider it a maximum value) * args: * none * * asserts: * none * * returns: VIDIOC_G_PARM ioctl result value * (sets vd->fps_denom and vd->fps_num to device value) */ int v4l2core_get_framerate (); /* * Starts the video stream * args: * none * * asserts: * none * * returns: VIDIOC_STREAMON ioctl result (0- E_OK) */ int v4l2core_start_stream(); /* * request video stream to stop * args: * none * * asserts: * none * * returns: error code (0 -OK) */ int v4l2core_request_stop_stream(); /* * Stops the video stream * args: * none * * asserts: * none * * returns: VIDIOC_STREAMOFF ioctl result (0- E_OK) */ int v4l2core_stop_stream(); /* * ######### CONTROLS ########## */ /* * return the control associated to id from device list * args: * id - control id * * asserts: * none * * returns: pointer to v4l2_control if succeded or null otherwise */ v4l2_ctrl_t* v4l2core_get_control_by_id(int id); /* * sets the value of control id in device * args: * id - control id * * asserts: * none * * returns: ioctl result */ int v4l2core_set_control_value_by_id(int id); /* * updates the value for control id from the device * also updates control flags * args: * id - control id * * asserts: * none * * returns: ioctl result */ int v4l2core_get_control_value_by_id(int id); /* * goes trough the control list and sets values in device to default * args: * none * * asserts: * none * * returns: void */ void v4l2core_set_control_defaults(); /* * set autofocus sort method * args: * method - sort method * * asserts: * none * * returns: none */ void v4l2core_soft_autofocus_set_sort(int method); /* * initiate software autofocus * args: * none * * asserts: * none * * returns: error code (0 - E_OK) */ int v4l2core_soft_autofocus_init (); /* * run the software autofocus * args: * frame - pointer to frame buffer * * asserts: * none * * returns: 1 - running 0- focused * (only matters for non-continue focus) */ int v4l2core_soft_autofocus_run(v4l2_frame_buff_t *frame); /* * sets a focus loop while autofocus is on * args: * none * * asserts: * focus_ctx is not null * * returns: none */ void v4l2core_soft_autofocus_set_focus(); /* * close and clean software autofocus * args: * none * * asserts: * none * * returns: none */ void v4l2core_soft_autofocus_close(); /* * save the device control values into a profile file * args: * filename - profile filename * * asserts: * none * * returns: error code (0 -E_OK) */ int v4l2core_save_control_profile(const char *filename); /* * load the device control values from a profile file * args: * filename - profile filename * * asserts: * none * * returns: error code (0 -E_OK) */ int v4l2core_load_control_profile(const char *filename); /* * ########### H264 controls ########### */ /* * resets the h264 encoder * args: * none * * asserts: * nonel * * returns: 0 on success or error code on fail */ int v4l2core_reset_h264_encoder(); /* * get h264 unit id * args: * none * * asserts: * nonel * * returns: unit id on success or error code ( < 0 ) on fail */ int v4l2core_get_h264_unit_id(); /* * get PPS NALU size * args: * none * * asserts: * none * * returns: PPS size */ int v4l2core_get_h264_pps_size(); /* * get PPS data * args: * none * * asserts: * none * * returns: pointer to PPS data */ uint8_t *v4l2core_get_h264_pps(); /* * get SPS NALU size * args: * none * * asserts: * none * * returns: SPS size */ int v4l2core_get_h264_sps_size(); /* * get SPS data * args: * none * * asserts: * none * * returns: pointer to SPS data */ uint8_t *v4l2core_get_h264_sps(); /* * request a IDR frame from the H264 encoder * args: * none * * asserts: * none * * returns: none */ void v4l2core_h264_request_idr(); /* * query the frame rate config * args: * query - query type * * asserts: * none * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t v4l2core_query_h264_frame_rate_config(uint8_t query); /* * get the frame rate config * args: * none * * asserts: * none * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t v4l2core_get_h264_frame_rate_config(); /* * set the frame rate config * args: * framerate - framerate * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_frame_rate_config(uint32_t framerate); /* * updates the h264_probe_commit_req field * args: * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) * config_probe_req - pointer to uvcx_video_config_probe_commit_t: * if null vd->h264_config_probe_req will be used * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_probe_h264_config_probe_req( uint8_t query, uvcx_video_config_probe_commit_t *config_probe_req); /* * gets the current h264_config_probe_req data struct * args: * none * * asserts: * none * * returns: pointer to current h264_config_probe_req data struct */ uvcx_video_config_probe_commit_t *v4l2core_get_h264_config_probe_req(); /* * flag core to use the preset h264_config_probe_req data (don't reset to default before commit) * args: * flag - value to set * * asserts: * none * * returns: none */ void v4l2core_set_h264_no_probe_default(uint8_t flag); /* * get h264_no_probe_default flag * args: * none * * asserts: * none * * returns: h264_no_probe_default flag */ uint8_t v4l2core_get_h264_no_probe_default(); /* * get the video rate control mode * args: * query - query type * * asserts: * none * * returns: video rate control mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_video_rate_control_mode(uint8_t query); /* * set the video rate control mode * args: * mode - rate mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_video_rate_control_mode(uint8_t mode); /* * get the temporal scale mode * args: * query - query type * * asserts: * none * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_temporal_scale_mode(uint8_t query); /* * set the temporal scale mode * args: * mode - temporal scale mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_temporal_scale_mode(uint8_t mode); /* * get the spatial scale mode * args: * query - query type * * asserts: * none * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_spatial_scale_mode(uint8_t query); /* * set the spatial scale mode * args: * mode - spatial scale mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_spatial_scale_mode(uint8_t mode); /* * ######### XU CONTROLS ########## */ /* * get lenght of xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * * asserts: * none * * returns: length of xu control */ uint16_t v4l2core_get_length_xu_control(uint8_t unit, uint8_t selector); /* * get uvc info for xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * * asserts: * none * * returns: info of xu control */ uint8_t v4l2core_get_info_xu_control(uint8_t unit, uint8_t selector); /* * runs a query on xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * query - query type * data - pointer to query data * * asserts: * none * * returns: 0 if query succeded or errno otherwise */ int v4l2core_query_xu_control(uint8_t unit, uint8_t selector, uint8_t query, void *data); /* * ########### FILE IO ############### */ /* * save data to file * args: * filename - string with filename * data - pointer to data * size - data size in bytes = sizeof(uint8_t) * * asserts: * none * * returns: error code */ int v4l2core_save_data_to_file(const char *filename, uint8_t *data, int size); /* * save the current frame to file * args: * frame - pointer to frame buffer * filename - output file name * format - image type * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) * * asserts: * none * * returns: error code */ int v4l2core_save_image(v4l2_frame_buff_t *frame, const char *filename, int format); /* * ############### TIME DATA ############## */ /* * get current timestamp * args: * none * * asserts: * none * * returns: monotonic time in nanoseconds */ uint64_t v4l2core_time_get_timestamp(); __END_DECLS #endif guvcview-2.0.2+debian/gview_v4l2core/jpeg_decoder.c000066400000000000000000001060311256377215300222230ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # M/Jpeg decoding and frame capture taken from luvcview # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "colorspaces.h" #include "jpeg_decoder.h" #include "gview.h" #include "../config.h" extern int verbosity; /* default Huffman table*/ #define JPG_HUFFMAN_TABLE_LENGTH 0x01A0 const uint8_t jpeg_huffman_table[JPG_HUFFMAN_TABLE_LENGTH] = { // luminance dc - length bits 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // luminance dc - code 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, // chrominance dc - length bits 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // chrominance dc - code 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, // luminance ac - number of codes with # bits (ordered by code length 1-16) 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, // luminance ac - run size (ordered by code length) 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, // chrominance ac -number of codes with # bits (ordered by code length 1-16) 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, // chrominance ac - run size (ordered by code length) 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA }; typedef struct _jpeg_decoder_context_t { void *codec_data; int width; int height; int pic_size; uint8_t *tmp_frame; //temp frame buffer } jpeg_decoder_context_t; static jpeg_decoder_context_t *jpeg_ctx = NULL; #if MJPG_BUILTIN //use internal jpeg decoder #define ISHIFT 11 #define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) #ifndef __P # define __P(x) x #endif /* special markers */ #define M_BADHUFF -1 #define M_EOF 0x80 #undef PREC #define PREC int /******** Markers *********/ #define M_SOI 0xd8 #define M_APP0 0xe0 #define M_DQT 0xdb #define M_SOF0 0xc0 #define M_DHT 0xc4 #define M_DRI 0xdd #define M_SOS 0xda #define M_RST0 0xd0 #define M_EOI 0xd9 #define M_COM 0xfe /* * IDCT data */ #define IMULT(a, b) (((a) * (b)) >> ISHIFT) #define ITOINT(a) ((a) >> ISHIFT) #define S22 ((PREC)IFIX(2 * 0.382683432)) #define C22 ((PREC)IFIX(2 * 0.923879532)) #define IC4 ((PREC)IFIX(1 / 0.707106781)) /*zigzag order used by idct*/ static unsigned char zig2[64] = { 0, 2, 3, 9, 10, 20, 21, 35, 14, 16, 25, 31, 39, 46, 50, 57, 5, 7, 12, 18, 23, 33, 37, 48, 27, 29, 41, 44, 52, 55, 59, 62, 15, 26, 30, 40, 45, 51, 56, 58, 1, 4, 8, 11, 19, 22, 34, 36, 28, 42, 43, 53, 54, 60, 61, 63, 6, 13, 17, 24, 32, 38, 47, 49 }; static uint8_t zig[64] = { 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63 }; /*coef used in idct*/ static PREC aaidct[8] = { IFIX(0.3535533906), IFIX(0.4903926402), IFIX(0.4619397663), IFIX(0.4157348062), IFIX(0.3535533906), IFIX(0.2777851165), IFIX(0.1913417162), IFIX(0.0975451610) }; /* * decoder structs */ struct jpeg_decdata { int dcts[6 * 64 + 16]; int out[64 * 6]; int dquant[3][64]; }; struct in { uint8_t *p; uint32_t bits; int left; int marker; int (*func) __P((void *)); void *data; }; #define LEBI_DCL int le, bi #define LEBI_GET(in) (le = in->left, bi = in->bits) #define LEBI_PUT(in) (in->left = le, in->bits = bi) /*********************************/ #define DECBITS 10 /* seems to be the optimum */ struct dec_hufftbl { int maxcode[17]; int valptr[16]; uint8_t vals[256]; uint32_t llvals[1 << DECBITS]; }; //struct enc_hufftbl; union hufftblp { struct dec_hufftbl *dhuff; //struct enc_hufftbl *ehuff; }; struct scan { int dc; /* old dc value */ union hufftblp hudc; union hufftblp huac; int next; /* when to switch to next scan */ int cid; /* component id */ int hv; /* horiz/vert, copied from comp */ int tq; /* quant tbl, copied from comp */ }; #define MAXCOMP 4 struct comp { int cid; int hv; int tq; }; struct jpginfo { int nc; /* number of components */ int ns; /* number of scans */ int dri; /* restart interval */ int nm; /* mcus til next marker */ int rm; /* next restart marker */ }; static struct jpginfo info; static struct comp comps[MAXCOMP]; static struct scan dscans[MAXCOMP]; static uint8_t quant[4][64]; static struct dec_hufftbl dhuff[4]; #define dec_huffdc (dhuff + 0) #define dec_huffac (dhuff + 2) /* * build huffman data * args: * hu - pointer to dec_hufftbl struct * hufflen - pointer to int with code size * huffvals - pointer to uint8_t with huffman values * * asserts: * hu not null * hufflen not null * huffvals not null * * returns: error code (0 - OK) */ static void dec_makehuff(struct dec_hufftbl *hu, int *hufflen, uint8_t *huffvals) { /*assertions*/ assert(hu != NULL); assert(hufflen != NULL); assert(huffvals != NULL); int code, k, i, j, d, x, c, v; for (i = 0; i < (1 << DECBITS); i++) hu->llvals[i] = 0; /* * llvals layout: * * value v already known, run r, backup u bits: * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu * value unknown, size b bits, run r, backup u bits: * 000000000000bbbb 0000 rrrr 0 uuuuuuu * value and size unknown: * 0000000000000000 0000 0000 0 0000000 */ code = 0; k = 0; for (i = 0; i < 16; i++, code <<= 1) { /* sizes */ hu->valptr[i] = k; for (j = 0; j < hufflen[i]; j++) { hu->vals[k] = *huffvals++; if (i < DECBITS) { c = code << (DECBITS - 1 - i); v = hu->vals[k] & 0x0f; /* size */ for (d = 1 << (DECBITS - 1 - i); --d >= 0;) { if (v + i < DECBITS) { /* both fit in table */ x = d >> (DECBITS - 1 - v - i); if (v && x < (1 << (v - 1))) x += (-1 << v) + 1; x = x << 16 | (hu->vals[k] & 0xf0) << 4 | (DECBITS - (i + 1 + v)) | 128; } else x = v << 16 | (hu->vals[k] & 0xf0) << 4 | (DECBITS - (i + 1)); hu->llvals[c | d] = x; } } code++; k++; } hu->maxcode[i] = code; } hu->maxcode[16] = 0x20000; /* always terminate decode */ } /* * huffman decoder initialization * args: * none * * asserts: * none * * returns: error code (0 - OK) */ static int huffman_init(void) { uint8_t *ptr= (uint8_t *) jpeg_huffman_table ; int i, j, l; l = JPG_HUFFMAN_TABLE_LENGTH ; while (l > 0) { int hufflen[16], k; uint8_t huffvals[256]; int tc = *ptr++; int th = tc & 15; tc >>= 4; int tt = tc * 2 + th; if (tc > 1 || th > 1) return E_BAD_TABLES_ERR; for (i = 0; i < 16; i++) hufflen[i] = *ptr++; l -= 1 + 16; k = 0; for (i = 0; i < 16; i++) { for (j = 0; j < hufflen[i]; j++) huffvals[k++] = *ptr++; l -= hufflen[i]; } dec_makehuff(dhuff + tt, hufflen, huffvals); } return 0; } /* * fillbits * args: * inp - pointer to struct in * le - left * bi - bits * * asserts: * inp not null * * returns: error code (0 - OK) */ static int fillbits(struct in *inp, int le, unsigned int bi) { /*asserts*/ assert(inp != NULL); if (inp->marker) { if (le <= 16) inp->bits = bi << 16, le += 16; return le; } while (le <= 24) { int b = *inp->p++; int m = 0; if (b == 0xff && (m = *inp->p++) != 0) { if (m == M_EOF) { if (inp->func && (m = inp->func(inp->data)) == 0) continue; } inp->marker = m; if (le <= 16) bi = bi << 16, le += 16; break; } bi = bi << 8 | b; le += 8; } inp->bits = bi; /* tmp... 2 return values needed */ return le; } static int dec_rec2 __P((struct in *, struct dec_hufftbl *, int *, int, int)); #define GETBITS(in, n) ( \ (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ (le -= (n)), \ bi >> le & ((1 << (n)) - 1) \ ) #define UNGETBITS(in, n) ( \ le += (n) \ ) #define DEC_REC(in, hu, r, i) ( \ r = GETBITS(in, DECBITS), \ i = hu->llvals[r], \ i & 128 ? \ ( \ UNGETBITS(in, i & 127), \ r = i >> 8 & 15, \ i >> 16 \ ) \ : \ ( \ LEBI_PUT(in), \ i = dec_rec2(in, hu, &r, r, i), \ LEBI_GET(in), \ i \ ) \ ) /* * mcus decoder * args: * inp - pointer to struct in * dct - pointer to int with dct values * n - number of dct values * sc - pointer to struct scan * maxp - pointer to int * * asserts: * none * * returns: error code (0 - OK) */ static void decode_mcus(struct in *inp, int *dct, int n, struct scan *sc, int *maxp) { struct dec_hufftbl *hu; int r = 0, t = 0; LEBI_DCL; memset(dct, 0, n * 64 * sizeof(*dct)); LEBI_GET(inp); while (n-- > 0) { hu = sc->hudc.dhuff; *dct++ = (sc->dc += DEC_REC(inp, hu, r, t)); hu = sc->huac.dhuff; int i = 63; while (i > 0) { t = DEC_REC(inp, hu, r, t); if (t == 0 && r == 0) { dct += i; break; } dct += r; *dct++ = t; i -= r + 1; } *maxp++ = 64 - i; if (n == sc->next) sc++; } LEBI_PUT(inp); } /* * readmarker decoder * args: * inp - pointer to struct in * * asserts: * inp not null * * returns: error code (0 - OK) */ static int dec_readmarker(struct in *inp) { /*asserts*/ assert(inp != NULL); int m; inp->left = fillbits(inp, inp->left, inp->bits); if ((m = inp->marker) == 0) return 0; inp->left = 0; inp->marker = 0; return m; } /* * set input * args: * inp - pointer to struct in * p - pointer to pixel data * * asserts: * inp not null * * returns: error code (0 - OK) */ static void setinput(struct in *inp, uint8_t *p) { /*asserts*/ assert(inp != NULL); inp->p = p; inp->left = 0; inp->bits = 0; inp->marker = 0; } /* * IDCT quantization table */ static void idctqtab(uint8_t *qin, PREC *qout) { int i, j; for (i = 0; i < 8; i++) for (j = 0; j < 8; j++) qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * IMULT(aaidct[i], aaidct[j]); } /****************************************************************/ /************** idct ***************/ /****************************************************************/ /* * inverse dct for jpeg decoding * args: * in - pointer to input data ( mcu - after huffman decoding) * out - pointer to data with output of idct (to be filled) * quant - pointer to quantization data tables * off - offset value (128.5 or 0.5) * max - maximum input mcu index? * * asserts: * none * * returns: none */ inline static void idct(int *inp, int *out, int *quant, long off, int max) { long t0, t1, t2, t3, t4, t5, t6, t7; // t ; long tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; long tmp[64], *tmpp; int i, j, te; uint8_t *zig2p; t0 = off; if (max == 1) //single color mcu { t0 += inp[0] * quant[0]; //only DC available for (i = 0; i < 64; i++) // fill mcu with DC value out[i] = ITOINT(t0); return; } zig2p = zig2; tmpp = tmp; for (i = 0; i < 8; i++) //apply quantization table in zigzag order { j = *zig2p++; t0 += inp[j] * (long) quant[j]; j = *zig2p++; t5 = inp[j] * (long) quant[j]; j = *zig2p++; t2 = inp[j] * (long) quant[j]; j = *zig2p++; t7 = inp[j] * (long) quant[j]; j = *zig2p++; t1 = inp[j] * (long) quant[j]; j = *zig2p++; t4 = inp[j] * (long) quant[j]; j = *zig2p++; t3 = inp[j] * (long) quant[j]; j = *zig2p++; t6 = inp[j] * (long) quant[j]; if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) { tmpp[0 * 8] = t0; //DC tmpp[1 * 8] = t0; tmpp[2 * 8] = t0; tmpp[3 * 8] = t0; tmpp[4 * 8] = t0; tmpp[5 * 8] = t0; tmpp[6 * 8] = t0; tmpp[7 * 8] = t0; tmpp++; t0 = 0; continue; } //IDCT; tmp0 = t0 + t1; t1 = t0 - t1; tmp2 = t2 - t3; t3 = t2 + t3; tmp2 = IMULT(tmp2, IC4) - t3; tmp3 = tmp0 + t3; t3 = tmp0 - t3; tmp1 = t1 + tmp2; tmp2 = t1 - tmp2; tmp4 = t4 - t7; t7 = t4 + t7; tmp5 = t5 + t6; t6 = t5 - t6; tmp6 = tmp5 - t7; t7 = tmp5 + t7; tmp5 = IMULT(tmp6, IC4); tmp6 = IMULT((tmp4 + t6), S22); tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; t6 = IMULT(t6, (C22 + S22)) - tmp6; t6 = t6 - t7; t5 = tmp5 - t6; t4 = tmp4 - t5; tmpp[0 * 8] = tmp3 + t7; //t0; tmpp[1 * 8] = tmp1 + t6; //t1; tmpp[2 * 8] = tmp2 + t5; //t2; tmpp[3 * 8] = t3 + t4; //t3; tmpp[4 * 8] = t3 - t4; //t4; tmpp[5 * 8] = tmp2 - t5; //t5; tmpp[6 * 8] = tmp1 - t6; //t6; tmpp[7 * 8] = tmp3 - t7; //t7; tmpp++; t0 = 0; } for (i = 0, j = 0; i < 8; i++) { t0 = tmp[j + 0]; t1 = tmp[j + 1]; t2 = tmp[j + 2]; t3 = tmp[j + 3]; t4 = tmp[j + 4]; t5 = tmp[j + 5]; t6 = tmp[j + 6]; t7 = tmp[j + 7]; if ((t1 | t2 | t3 | t4 | t5 | t6 | t7) == 0) { te = ITOINT(t0); out[j + 0] = te; out[j + 1] = te; out[j + 2] = te; out[j + 3] = te; out[j + 4] = te; out[j + 5] = te; out[j + 6] = te; out[j + 7] = te; j += 8; continue; } //IDCT; tmp0 = t0 + t1; t1 = t0 - t1; tmp2 = t2 - t3; t3 = t2 + t3; tmp2 = IMULT(tmp2, IC4) - t3; tmp3 = tmp0 + t3; t3 = tmp0 - t3; tmp1 = t1 + tmp2; tmp2 = t1 - tmp2; tmp4 = t4 - t7; t7 = t4 + t7; tmp5 = t5 + t6; t6 = t5 - t6; tmp6 = tmp5 - t7; t7 = tmp5 + t7; tmp5 = IMULT(tmp6, IC4); tmp6 = IMULT((tmp4 + t6), S22); tmp4 = IMULT(tmp4, (C22 - S22)) + tmp6; t6 = IMULT(t6, (C22 + S22)) - tmp6; t6 = t6 - t7; t5 = tmp5 - t6; t4 = tmp4 - t5; out[j + 0] = ITOINT(tmp3 + t7); out[j + 1] = ITOINT(tmp1 + t6); out[j + 2] = ITOINT(tmp2 + t5); out[j + 3] = ITOINT(t3 + t4); out[j + 4] = ITOINT(t3 - t4); out[j + 5] = ITOINT(tmp2 - t5); out[j + 6] = ITOINT(tmp1 - t6); out[j + 7] = ITOINT(tmp3 - t7); j += 8; } } /*********************************/ //static void col221111 __P((int *, unsigned char *, int)); typedef void (*ftopict) (int * out, uint8_t *pic, int width) ; /*********************************/ /* * pointer to pixel data */ static uint8_t *datap; /* * input structure (in) */ static struct in inp; /* * get byte (8 bit) from datap */ static int getbyte(void) { return *datap++; } /* * get word (16 bit) from datap */ static int getword(void) { int c1, c2; c1 = *datap++; c2 = *datap++; return c1 << 8 | c2; } /* * read jpeg tables (huffman and quantization) * args: * till - Marker (frame - SOF0 scan - SOS) * isDHT - flag indicating the presence of huffman tables (if 0 must use default ones - MJPG frame) * asserts: * none * * returns: error code (0 - OK) */ static int readtables(int till, int *isDHT) { int l, i, j, lq, pq, tq; int tc, th, tt; for (;;) { if (getbyte() != 0xff) return -1; int m = 0; if ((m = getbyte()) == till) break; switch (m) { case 0xc2: return 0; /*read quantization tables (Lqt and Cqt)*/ case M_DQT: lq = getword(); while (lq > 2) { pq = getbyte(); /*Lqt=0x00 Cqt=0x01*/ tq = pq & 15; if (tq > 3) return -1; pq >>= 4; if (pq != 0) return -1; for (i = 0; i < 64; i++) quant[tq][i] = getbyte(); lq -= 64 + 1; } break; /*read huffman table*/ case M_DHT: l = getword(); while (l > 2) { int hufflen[16], k; uint8_t huffvals[256]; tc = getbyte(); th = tc & 15; tc >>= 4; tt = tc * 2 + th; if (tc > 1 || th > 1) return -1; for (i = 0; i < 16; i++) hufflen[i] = getbyte(); l -= 1 + 16; k = 0; for (i = 0; i < 16; i++) { for (j = 0; j < hufflen[i]; j++) huffvals[k++] = getbyte(); l -= hufflen[i]; } dec_makehuff(dhuff + tt, hufflen, huffvals); } /* has huffman tables defined (JPEG)*/ *isDHT= 1; break; /*restart interval*/ case M_DRI: l = getword(); info.dri = getword(); break; default: l = getword(); while (l-- > 2) getbyte(); break; } } return 0; } /* * init dscans * args: * none * * asserts: * none * * returns: none */ static void dec_initscans(void) { int i; info.nm = info.dri + 1; info.rm = M_RST0; for (i = 0; i < info.ns; i++) dscans[i].dc = 0; } /* * check markers * args: * none * * asserts: * none * * returns: error code (0 - OK) */ static int dec_checkmarker(void) { int i; if (dec_readmarker(&inp) != info.rm) return -1; info.nm = info.dri; info.rm = (info.rm + 1) & ~0x08; for (i = 0; i < info.ns; i++) dscans[i].dc = 0; return 0; } /* * check markers * args: * none * * asserts: * none * * returns: error code (0 - OK) */ static int dec_rec2(struct in *inp, struct dec_hufftbl *hu, int *runp, int c, int i) { LEBI_DCL; LEBI_GET(inp); if (i) { UNGETBITS(inp, i & 127); *runp = i >> 8 & 15; i >>= 16; } else { for (i = DECBITS; (c = ((c << 1) | GETBITS(inp, 1))) >= (hu->maxcode[i]); i++); if (i >= 16) { inp->marker = M_BADHUFF; return 0; } i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; *runp = i >> 4; i &= 15; } if (i == 0) { /* sigh, 0xf0 is 11 bit */ LEBI_PUT(inp); return 0; } /* receive part */ c = GETBITS(inp, i); if (c < (1 << (i - 1))) c += (-1 << i) + 1; LEBI_PUT(inp); return c; } /* * init (m)jpeg decoder context * args: * width - image width * height - image height * * asserts: * none * * returns: error code (0 - E_OK) */ int jpeg_init_decoder(int width, int height) { if(jpeg_ctx != NULL) jpeg_close_decoder(); jpeg_ctx = calloc(1, sizeof(jpeg_decoder_context_t)); if(jpeg_ctx == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); exit(-1); } jpeg_ctx->width = width; jpeg_ctx->height = height; jpeg_ctx->pic_size = width * height * 2; //yuyv jpeg_ctx->codec_data = NULL; jpeg_ctx->tmp_frame = calloc(jpeg_ctx->pic_size, sizeof(uint8_t)); if(jpeg_ctx->tmp_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); exit(-1); } return E_OK; } /* * jpeg decode * args: * out_buf - pointer to picture data ( decoded image - yuyv format) * in_buf - pointer to input data ( compressed jpeg ) * size - picture size * * asserts: * out_buf not null * in_buf not null * * returns: error code (0 - OK) */ //int jpeg_decode(uint8_t **pic, uint8_t *buf, int width, int height) int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size) { /*asserts*/ assert(in_buf != NULL); assert(out_buf != NULL); memcpy(jpeg_ctx->tmp_frame, in_buf, size); struct jpeg_decdata *decdata; int i=0, j=0, m=0, tac=0, tdc=0; int intwidth=0, intheight=0; int mcusx=0, mcusy=0, mx=0, my=0; int ypitch=0 ,xpitch=0,bpp=0,pitch=0,x=0,y=0; int mb=0; int max[6]; ftopict convert; int err = 0; int isInitHuffman = 0; decdata = calloc(1, sizeof(struct jpeg_decdata)); if(decdata == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_decode): %s\n", strerror(errno)); exit(-1); } for(i=0;i<6;i++) max[i]=0; if (!decdata) { err = E_ALLOC_ERR; goto error; } datap = jpeg_ctx->tmp_frame; /*check SOI (0xFFD8)*/ if (getbyte() != 0xff) { err = E_NO_SOI_ERR; goto error; } if (getbyte() != M_SOI) { err = E_NO_SOI_ERR; goto error; } /*read tables - if exist, up to start frame marker (0xFFC0)*/ if (readtables(M_SOF0, &isInitHuffman)) { err = E_BAD_TABLES_ERR; goto error; } getword(); /*header lenght*/ i = getbyte(); /*precision (8 bit)*/ if (i != 8) { err = E_NOT_8BIT_ERR; goto error; } intheight = getword(); /*height*/ intwidth = getword(); /*width */ if ((intheight & 7) || (intwidth & 7)) /*must be even*/ { err = E_BAD_WIDTH_OR_HEIGHT_ERR; goto error; } info.nc = getbyte(); /*number of components*/ if (info.nc > MAXCOMP) { err = E_TOO_MANY_COMPPS_ERR; goto error; } /*for each component*/ for (i = 0; i < info.nc; i++) { int h, v; comps[i].cid = getbyte(); /*component id*/ comps[i].hv = getbyte(); v = comps[i].hv & 15; /*vertical sampling */ h = comps[i].hv >> 4; /*horizontal sampling */ comps[i].tq = getbyte(); /*quantization table used*/ if (h > 3 || v > 3) { err = E_ILLEGAL_HV_ERR; goto error; } if (comps[i].tq > 3) { err = E_QUANT_TBL_SEL_ERR; goto error; } } /*read tables - if exist, up to start of scan marker (0xFFDA)*/ if (readtables(M_SOS,&isInitHuffman)) { err = E_BAD_TABLES_ERR; goto error; } getword(); /* header lenght */ info.ns = getbyte(); /* number of scans */ if (!info.ns) { printf("V4L2_CORE: (jpeg decoder) info ns %d/n",info.ns); err = E_NOT_YCBCR_ERR; goto error; } /*for each scan*/ for (i = 0; i < info.ns; i++) { dscans[i].cid = getbyte(); /*component id*/ tdc = getbyte(); tac = tdc & 15; /*ac table*/ tdc >>= 4; /*dc table*/ if (tdc > 1 || tac > 1) { err = E_QUANT_TBL_SEL_ERR; goto error; } for (j = 0; j < info.nc; j++) if (comps[j].cid == dscans[i].cid) break; if (j == info.nc) { err = E_UNKNOWN_CID_ERR; goto error; } dscans[i].hv = comps[j].hv; dscans[i].tq = comps[j].tq; dscans[i].hudc.dhuff = dec_huffdc + tdc; dscans[i].huac.dhuff = dec_huffac + tac; } i = getbyte(); /*0 */ j = getbyte(); /*63*/ m = getbyte(); /*0 */ if (i != 0 || j != 63 || m != 0) { fprintf(stderr, "V4L2_CORE: (jpeg decoder) FW error,not seq DCT ??\n"); } /*build huffman tables*/ if(!isInitHuffman) { if(huffman_init() < 0) return E_BAD_TABLES_ERR; } /* if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) { err = ERR_NOT_YCBCR_221111; goto error; } if (dscans[1].hv != 0x11 || dscans[2].hv != 0x11) { err = ERR_NOT_YCBCR_221111; goto error; } */ /* * if internal width and external are not the same or heigth too * and pic not allocated realloc the good size and mark the change * need 1 macroblock line more ?? */ //if (intwidth != width || intheight != height || pic == NULL) //{ // width = intwidth; // height = intheight; // // BytesperPixel 2 yuyv , 3 rgb24 // *pic = calloc( intwidth * (intheight + 8) * 2, sizeof(uint8_t)); // if(*pic == NULL) // { // fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (alloc_v4l2_frames): %s\n", strerror(errno)); // exit(-1); // } //} switch (dscans[0].hv) { case 0x22: // 411 mb=6; mcusx = jpeg_ctx->width >> 4; mcusy = jpeg_ctx->height >> 4; bpp=2; xpitch = 16 * bpp; pitch = jpeg_ctx->width * bpp; // YUYV out ypitch = 16 * pitch; convert = yuv420pto422; //choose the right conversion function break; case 0x21: //422 mb=4; mcusx = jpeg_ctx->width >> 4; mcusy = jpeg_ctx->height >> 3; bpp=2; xpitch = 16 * bpp; pitch = jpeg_ctx->width * bpp; // YUYV out ypitch = 8 * pitch; convert = yuv422pto422; //choose the right conversion function break; case 0x11: //444 mcusx = jpeg_ctx->width >> 3; mcusy = jpeg_ctx->height >> 3; bpp=2; xpitch = 8 * bpp; pitch = jpeg_ctx->width * bpp; // YUYV out ypitch = 8 * pitch; if (info.ns==1) { mb = 1; convert = yuv400pto422; //choose the right conversion function } else { mb=3; convert = yuv444pto422; //choose the right conversion function } break; default: err = E_NOT_YCBCR_ERR; goto error; break; } idctqtab(quant[dscans[0].tq], decdata->dquant[0]); idctqtab(quant[dscans[1].tq], decdata->dquant[1]); idctqtab(quant[dscans[2].tq], decdata->dquant[2]); setinput(&inp, datap); dec_initscans(); dscans[0].next = 2; dscans[1].next = 1; dscans[2].next = 0; /* 4xx encoding */ for (my = 0,y=0; my < mcusy; my++,y+=ypitch) { for (mx = 0,x=0; mx < mcusx; mx++,x+=xpitch) { if (info.dri && !--info.nm) if (dec_checkmarker()) { err = E_WRONG_MARKER_ERR; goto error; } switch (mb) { case 6: decode_mcus(&inp, decdata->dcts, mb, dscans, max); idct(decdata->dcts, decdata->out, decdata->dquant[0], IFIX(128.5), max[0]); idct(decdata->dcts + 64, decdata->out + 64, decdata->dquant[0], IFIX(128.5), max[1]); idct(decdata->dcts + 128, decdata->out + 128, decdata->dquant[0], IFIX(128.5), max[2]); idct(decdata->dcts + 192, decdata->out + 192, decdata->dquant[0], IFIX(128.5), max[3]); idct(decdata->dcts + 256, decdata->out + 256, decdata->dquant[1], IFIX(0.5), max[4]); idct(decdata->dcts + 320, decdata->out + 320, decdata->dquant[2], IFIX(0.5), max[5]); break; case 4: decode_mcus(&inp, decdata->dcts, mb, dscans, max); idct(decdata->dcts, decdata->out, decdata->dquant[0], IFIX(128.5), max[0]); idct(decdata->dcts + 64, decdata->out + 64, decdata->dquant[0], IFIX(128.5), max[1]); idct(decdata->dcts + 128, decdata->out + 256, decdata->dquant[1], IFIX(0.5), max[4]); idct(decdata->dcts + 192, decdata->out + 320, decdata->dquant[2], IFIX(0.5), max[5]); break; case 3: decode_mcus(&inp, decdata->dcts, mb, dscans, max); idct(decdata->dcts, decdata->out, decdata->dquant[0], IFIX(128.5), max[0]); idct(decdata->dcts + 64, decdata->out + 256, decdata->dquant[1], IFIX(0.5), max[4]); idct(decdata->dcts + 128, decdata->out + 320, decdata->dquant[2], IFIX(0.5), max[5]); break; case 1: decode_mcus(&inp, decdata->dcts, mb, dscans, max); idct(decdata->dcts, decdata->out, decdata->dquant[0], IFIX(128.5), max[0]); break; } // switch enc411 convert(decdata->out, out_buf+y+x, pitch); //convert to 422 } } m = dec_readmarker(&inp); if (m != M_EOI) { err = E_NO_EOI_ERR; goto error; } free(decdata); return 0; error: free(decdata); return err; } /* * close (m)jpeg decoder context * args: * none * * asserts: * none * * returns: none */ void jpeg_close_decoder() { if(jpeg_ctx == NULL) return; free(jpeg_ctx->tmp_frame); free(jpeg_ctx); jpeg_ctx = NULL; } #else //use libavcodec to decode mjpeg data /*h264 decoder (libavcodec)*/ #ifdef HAVE_FFMPEG_AVCODEC_H #include #else #include #endif #define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ (LIBAVCODEC_VERSION_MAJOR == major && \ LIBAVCODEC_VERSION_MINOR >= minor)) #if !LIBAVCODEC_VER_AT_LEAST(54,25) #define AV_CODEC_ID_H264 CODEC_ID_H264 #endif #if !LIBAVCODEC_VER_AT_LEAST(54,25) #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG #endif typedef struct _codec_data_t { AVCodec *codec; AVCodecContext *context; AVFrame *picture; } codec_data_t; /* * init (m)jpeg decoder context * args: * width - image width * height - image height * * asserts: * none * * returns: error code (0 - E_OK) */ int jpeg_init_decoder(int width, int height) { #if !LIBAVCODEC_VER_AT_LEAST(53,34) avcodec_init(); #endif /* * register all the codecs (we can also register only the codec * we wish to have smaller code) */ avcodec_register_all(); av_log_set_level(AV_LOG_PANIC); if(jpeg_ctx != NULL) jpeg_close_decoder(); jpeg_ctx = calloc(1, sizeof(jpeg_decoder_context_t)); if(jpeg_ctx == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); exit(-1); } codec_data_t *codec_data = calloc(1, sizeof(codec_data_t)); if(codec_data == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); exit(-1); } codec_data->codec = avcodec_find_decoder(AV_CODEC_ID_MJPEG); if(!codec_data->codec) { fprintf(stderr, "V4L2_CORE: (mjpeg decoder) codec not found\n"); free(jpeg_ctx); free(codec_data); jpeg_ctx = NULL; return E_NO_CODEC; } #if LIBAVCODEC_VER_AT_LEAST(53,6) codec_data->context = avcodec_alloc_context3(codec_data->codec); avcodec_get_context_defaults3 (codec_data->context, codec_data->codec); #else codec_data->context = avcodec_alloc_context(); avcodec_get_context_defaults(codec_data->context); #endif if(codec_data->context == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); exit(-1); } codec_data->context->pix_fmt = PIX_FMT_YUV422P; codec_data->context->width = width; codec_data->context->height = height; //jpeg_ctx->context->dsp_mask = (FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE); #if LIBAVCODEC_VER_AT_LEAST(53,6) if (avcodec_open2(codec_data->context, codec_data->codec, NULL) < 0) #else if (avcodec_open(codec_data->context, codec_data->codec) < 0) #endif { fprintf(stderr, "V4L2_CORE: (mjpeg decoder) couldn't open codec\n"); avcodec_close(codec_data->context); free(codec_data->context); free(codec_data); free(jpeg_ctx); jpeg_ctx = NULL; return E_NO_CODEC; } #if LIBAVCODEC_VER_AT_LEAST(55,28) codec_data->picture = av_frame_alloc(); av_frame_unref(codec_data->picture); #else codec_data->picture = avcodec_alloc_frame(); avcodec_get_frame_defaults(codec_data->picture); #endif /*alloc temp buffer*/ jpeg_ctx->tmp_frame = calloc(width*height*2, sizeof(uint8_t)); if(jpeg_ctx->tmp_frame == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (jpeg_init_decoder): %s\n", strerror(errno)); exit(-1); } jpeg_ctx->pic_size = avpicture_get_size(codec_data->context->pix_fmt, width, height); jpeg_ctx->width = width; jpeg_ctx->height = height; jpeg_ctx->codec_data = codec_data; return E_OK; } /* * decode (m)jpeg frame * args: * out_buf - pointer to decoded data * in_buf - pointer to h264 data * size - in_buf size * * asserts: * jpeg_ctx is not null * in_buf is not null * out_buf is not null * * returns: decoded data size */ int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size) { /*asserts*/ assert(jpeg_ctx != NULL); assert(in_buf != NULL); assert(out_buf != NULL); AVPacket avpkt; av_init_packet(&avpkt); avpkt.size = size; avpkt.data = in_buf; codec_data_t *codec_data = (codec_data_t *) jpeg_ctx->codec_data; int got_picture = 0; int len = avcodec_decode_video2(codec_data->context, codec_data->picture, &got_picture, &avpkt); if(len < 0) { fprintf(stderr, "V4L2_CORE: (jpeg decoder) error while decoding frame\n"); return len; } if(got_picture) { avpicture_layout((AVPicture *) codec_data->picture, codec_data->context->pix_fmt, jpeg_ctx->width, jpeg_ctx->height, jpeg_ctx->tmp_frame, jpeg_ctx->pic_size); /* libavcodec output is in yuv422p */ #ifdef USE_PLANAR_YUV yuv422p_to_yu12(out_buf, jpeg_ctx->tmp_frame, jpeg_ctx->width, jpeg_ctx->height); #else yuv422_to_yuyv(out_buf, jpeg_ctx->tmp_frame, jpeg_ctx->width, jpeg_ctx->height); #endif return jpeg_ctx->pic_size; } else return 0; } /* * close (m)jpeg decoder context * args: * none * * asserts: * none * * returns: none */ void jpeg_close_decoder() { if(jpeg_ctx == NULL) return; codec_data_t *codec_data = (codec_data_t *) jpeg_ctx->codec_data; avcodec_close(codec_data->context); free(codec_data->context); #if LIBAVCODEC_VER_AT_LEAST(55,28) av_frame_free(&codec_data->picture); #else #if LIBAVCODEC_VER_AT_LEAST(54,28) avcodec_free_frame(&codec_data->picture); #else av_freep(&codec_data->picture); #endif #endif if(jpeg_ctx->tmp_frame) free(jpeg_ctx->tmp_frame); free(codec_data); free(jpeg_ctx); jpeg_ctx = NULL; } #endif guvcview-2.0.2+debian/gview_v4l2core/jpeg_decoder.h000066400000000000000000000063231256377215300222330ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # M/Jpeg decoding and frame capture taken from luvcview # # # ********************************************************************************/ #ifndef JPEG_DECODER_H #define JPEG_DECODER_H #define HEADERFRAME1 0xaf /*******Error codes *******/ #define ERR_NO_SOI 1 #define ERR_NOT_8BIT 2 #define ERR_HEIGHT_MISMATCH 3 #define ERR_WIDTH_MISMATCH 4 #define ERR_BAD_WIDTH_OR_HEIGHT 5 #define ERR_TOO_MANY_COMPPS 6 #define ERR_ILLEGAL_HV 7 #define ERR_QUANT_TABLE_SELECTOR 8 #define ERR_NOT_YCBCR_221111 9 #define ERR_UNKNOWN_CID_IN_SCAN 10 #define ERR_NOT_SEQUENTIAL_DCT 11 #define ERR_WRONG_MARKER 12 #define ERR_NO_EOI 13 #define ERR_BAD_TABLES 14 #define ERR_DEPTH_MISMATCH 15 /* * init (m)jpeg decoder context * args: * width - image width * height - image height * * asserts: * none * * returns: error code (0 - E_OK) */ int jpeg_init_decoder(int width, int height); /* * jpeg decode * args: * out_buf - pointer to picture data ( decoded image - yuyv format) * in_buf - pointer to input data ( compressed jpeg ) * size - picture size * * asserts: * out_buf not null * in_buf not null * * returns: error code (0 - OK) */ int jpeg_decode(uint8_t *out_buf, uint8_t *in_buf, int size); /* * close (m)jpeg decoder context * args: * none * * asserts: * none * * returns: none */ void jpeg_close_decoder(); #endif guvcview-2.0.2+debian/gview_v4l2core/save_image.c000066400000000000000000000076371256377215300217250ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "save_image.h" #include "colorspaces.h" extern int verbosity; /* * save data to file * args: * filename - string with filename * data - pointer to data * size - data size in bytes = sizeof(uint8_t) * * asserts: * none * * returns: error code */ int v4l2core_save_data_to_file(const char *filename, uint8_t *data, int size) { FILE *fp; int ret = 0; if ((fp = fopen(filename, "wb")) !=NULL) { ret = fwrite(data, size, 1, fp); if (ret<1) ret=1;/*write error*/ else ret=0; fflush(fp); /*flush data stream to file system*/ if(fsync(fileno(fp)) || fclose(fp)) fprintf(stderr, "V4L2_CORE: (save_data_to_file) error - couldn't write buffer to file: %s\n", strerror(errno)); else if(verbosity > 0) printf("V4L2_CORE: saved data to %s\n", filename); } else ret = 1; return (ret); } /* * save the current frame to file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - output file name * format - image type * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) * * asserts: * vd is not null * * returns: error code */ int save_frame_image(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename, int format) { /*assertions*/ assert(vd != NULL); int ret= E_OK; switch(format) { case IMG_FMT_RAW: if(verbosity > 0) printf("V4L2_CORE: saving raw data to %s\n", filename); ret = v4l2core_save_data_to_file(filename, frame->raw_frame, frame->raw_frame_size); break; case IMG_FMT_JPG: if(verbosity > 0) printf("V4L2_CORE: saving jpeg frame to %s\n", filename); ret = save_image_jpeg(vd, frame, filename); break; case IMG_FMT_BMP: if(verbosity > 0) printf("V4L2_CORE: saving bmp frame to %s\n", filename); ret = save_image_bmp(vd, frame, filename); break; case IMG_FMT_PNG: if(verbosity > 0) printf("V4L2_CORE: saving png frame to %s\n", filename); ret = save_image_png(vd, frame, filename); break; default: fprintf(stderr, "V4L2_CORE: (save_image) Image format %i not supported\n", format); ret = E_FORMAT_ERR; break; } return ret; }guvcview-2.0.2+debian/gview_v4l2core/save_image.h000066400000000000000000000062421256377215300217210ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef SAVE_IMAGE_H #define SAVE_IMAGE_H #include "gviewv4l2core.h" #include "v4l2_core.h" /* * save the current frame to file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - output file name * format - image type * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) * * asserts: * vd is not null * * returns: error code */ int save_frame_image(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename, int format); /* * save frame data to a jpeg file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - filename string * * asserts: * vd is not null * * returns: error code */ int save_image_jpeg(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename); /* * save frame data to a bmp file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - filename string * * asserts: * vd is not null * * returns: error code */ int save_image_bmp(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename); /* * save frame data into a png file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - string with png filename name * * asserts: * vd is not null * * returns: error code */ int save_image_png(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename); #endifguvcview-2.0.2+debian/gview_v4l2core/save_image_bmp.c000066400000000000000000000132271256377215300225530ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "save_image.h" #include "colorspaces.h" #include "../config.h" typedef struct _bmp_file_header_t { uint16_t bfType; //Specifies the file type, must be BM uint32_t bfSize; //Specifies the size, in bytes, of the bitmap file uint16_t bfReserved1; //Reserved; must be zero uint16_t bfReserved2; //Reserved; must be zero uint32_t bfOffBits; /*Specifies the offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits= FileHeader+InfoHeader+RGBQUAD(0 for 24bit BMP)=64*/ } __attribute__ ((packed)) bmp_file_header_t; typedef struct _bmp_info_header_t { uint32_t biSize; /*size of this header 40 bytes*/ int32_t biWidth; int32_t biHeight; uint16_t biPlanes; /*color planes - set to 1*/ uint16_t biBitCount; /*bits per pixel - color depth (use 24)*/ uint32_t biCompression; /*BI_RGB = 0*/ uint32_t biSizeImage; uint32_t biXPelsPerMeter; uint32_t biYPelsPerMeter; uint32_t biClrUsed; uint32_t biClrImportant; } __attribute__ ((packed)) bmp_info_header_t; /* * save bmp data to file * args: * filename - bmp file name * data - pixel data (rgb form) * width - image width * height - image height * BitCount - bits per pixel * * asserts: * data is not null * * returns: error code */ static int save_bmp(const char *filename, uint8_t *data, int width, int height, int BitCount) { /*assertions*/ assert(data != NULL); int ret = E_OK; bmp_file_header_t BmpFileh; bmp_info_header_t BmpInfoh; FILE *fp; int imgsize = width * height * BitCount / 8; BmpFileh.bfType=0x4d42;//must be BM (x4d42) /*Specifies the size, in bytes, of the bitmap file*/ BmpFileh.bfSize=sizeof(bmp_file_header_t)+sizeof(bmp_info_header_t)+imgsize; BmpFileh.bfReserved1=0; //Reserved; must be zero BmpFileh.bfReserved2=0; //Reserved; must be zero /*Specifies the offset, in bytes, */ /*from the beginning of the BITMAPFILEHEADER structure */ /* to the bitmap bits */ BmpFileh.bfOffBits=sizeof(bmp_file_header_t)+sizeof(bmp_info_header_t); BmpInfoh.biSize=40; BmpInfoh.biWidth=width; BmpInfoh.biHeight=height; BmpInfoh.biPlanes=1; BmpInfoh.biBitCount=BitCount; BmpInfoh.biCompression=0; // 0 BmpInfoh.biSizeImage=imgsize; BmpInfoh.biXPelsPerMeter=0; BmpInfoh.biYPelsPerMeter=0; BmpInfoh.biClrUsed=0; BmpInfoh.biClrImportant=0; if ((fp = fopen(filename, "wb")) != NULL) { // (wb) write in binary mode ret=fwrite(&BmpFileh, sizeof(bmp_file_header_t), 1, fp); ret+=fwrite(&BmpInfoh, sizeof(bmp_info_header_t),1,fp); ret+=fwrite(data, imgsize, 1, fp); if (ret < 3) ret = E_FILE_IO_ERR;//write error else ret = E_OK; fflush(fp); //flush data stream to file system if(fsync(fileno(fp)) || fclose(fp)) { fprintf(stderr, "V4L2_CORE: (save bmp) couldn't write to file %s: %s\n", filename, strerror(errno)); ret = E_FILE_IO_ERR; } } else { ret=1; fprintf(stderr, "V4L2_CORE: (save bmp) could not open file %s for write \n", filename); } return ret; } /* * save frame data to a bmp file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - filename string * * asserts: * vd is not null * * returns: error code */ int save_image_bmp(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename) { /*assertions*/ assert(vd != NULL); int ret = E_OK; int width = vd->format.fmt.pix.width; int height = vd->format.fmt.pix.height; uint8_t *bmp = calloc(width * height * 3, sizeof(uint8_t)); if(bmp == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_img_bmp): %s\n", strerror(errno)); exit(-1); } #ifdef USE_PLANAR_YUV yu12_to_dib24(bmp, frame->yuv_frame, width, height); #else yuyv2bgr(frame->yuv_frame, bmp, width, height); #endif ret = save_bmp(filename, bmp, width, height, 24); free(bmp); return ret; } guvcview-2.0.2+debian/gview_v4l2core/save_image_jpeg.c000066400000000000000000000672351256377215300227320ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "save_image.h" #include "colorspaces.h" #include "dct.h" #include "../config.h" /*huffman table from jpeg decoder*/ #define JPG_HUFFMAN_TABLE_LENGTH 0x01A0 extern const uint8_t jpeg_huffman_table[JPG_HUFFMAN_TABLE_LENGTH]; typedef struct _jpeg_file_header_t { uint8_t SOI[2];/*SOI Marker 0xFFD8*/ uint8_t APP0[2];/*APP0 MARKER 0xFF0E*/ uint8_t length[2];/*length of header without APP0 in bytes*/ uint8_t JFIF[5];/*set to JFIF0 0x4A46494600*/ uint8_t VERS[2];/*1-2 0x0102*/ /* * density: * 0 - No units, aspect ratio only specified * 1 - Pixels per Inch on quickcam5000pro * 2 - Pixels per Centimetre */ uint8_t density; uint8_t xdensity[2];/*120 on quickcam5000pro*/ uint8_t ydensity[2];/*120 on quickcam5000pro*/ uint8_t WTN;/*width Thumbnail 0*/ uint8_t HTN;/*height Thumbnail 0*/ } __attribute__ ((packed)) jpeg_file_header_t; typedef struct _jpeg_encoder_ctx_t { uint16_t image_width; uint16_t image_height; uint16_t mcu_width; uint16_t mcu_height; uint16_t horizontal_mcus; uint16_t vertical_mcus; uint16_t rows; uint16_t cols; uint16_t length_minus_mcu_width; uint16_t length_minus_width; uint16_t incr; uint16_t mcu_width_size; uint16_t offset; int16_t ldc1; int16_t ldc2; int16_t ldc3; uint32_t lcode; uint16_t bitindex; /* MCUs */ int16_t Y1 [64]; int16_t Y2 [64]; int16_t Temp [64]; int16_t CB [64]; int16_t CR [64]; /* Quantization Tables */ uint8_t Lqt [64]; uint8_t Cqt [64]; uint16_t ILqt [64]; uint16_t ICqt [64]; } jpeg_encoder_ctx_t; #define PUTBITS \ { \ bits_in_next_word = (int16_t) (jpeg_ctx->bitindex + numbits - 32); \ if (bits_in_next_word < 0) \ { \ jpeg_ctx->lcode = (jpeg_ctx->lcode << numbits) | data; \ jpeg_ctx->bitindex += numbits; \ } \ else \ { \ jpeg_ctx->lcode = (jpeg_ctx->lcode << (32 - jpeg_ctx->bitindex)) | (data >> bits_in_next_word); \ if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 24)) == 0xff) \ *output++ = 0; \ if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 16)) == 0xff) \ *output++ = 0; \ if ((*output++ = (uint8_t)(jpeg_ctx->lcode >> 8)) == 0xff) \ *output++ = 0; \ if ((*output++ = (uint8_t) jpeg_ctx->lcode) == 0xff) \ *output++ = 0; \ jpeg_ctx->lcode = data; \ jpeg_ctx->bitindex = bits_in_next_word; \ } \ } /* * Encoder Tables */ static uint16_t luminance_dc_code_table[12] = { 0x0000, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x000E, 0x001E, 0x003E, 0x007E, 0x00FE, 0x01FE }; static uint16_t luminance_dc_size_table [12] = { 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009 }; static uint16_t chrominance_dc_code_table [12] = { 0x0000, 0x0001, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E, 0x007E, 0x00FE, 0x01FE, 0x03FE, 0x07FE }; static uint16_t chrominance_dc_size_table [12] = { 0x0002, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B }; static uint16_t luminance_ac_code_table [162] = { 0x000A, 0x0000, 0x0001, 0x0004, 0x000B, 0x001A, 0x0078, 0x00F8, 0x03F6, 0xFF82, 0xFF83, 0x000C, 0x001B, 0x0079, 0x01F6, 0x07F6, 0xFF84, 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0x001C, 0x00F9, 0x03F7, 0x0FF4, 0xFF89, 0xFF8A, 0xFF8b, 0xFF8C, 0xFF8D, 0xFF8E, 0x003A, 0x01F7, 0x0FF5, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0x003B, 0x03F8, 0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0x007A, 0x07F7, 0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0x007B, 0x0FF6, 0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0x00FA, 0x0FF7, 0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0x01F8, 0x7FC0, 0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0x01F9, 0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0x01FA, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, 0x03F9, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, 0x03FA, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0x07F8, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0x07F9 }; static uint16_t luminance_ac_size_table [162] = { 0x0004, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0008, 0x000A, 0x0010, 0x0010, 0x0004, 0x0005, 0x0007, 0x0009, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0006, 0x0009, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0007, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0008, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000B }; static uint16_t chrominance_ac_code_table [162] = { 0x0000, 0x0001, 0x0004, 0x000A, 0x0018, 0x0019, 0x0038, 0x0078, 0x01F4, 0x03F6, 0x0FF4, 0x000B, 0x0039, 0x00F6, 0x01F5, 0x07F6, 0x0FF5, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0x001A, 0x00F7, 0x03F7, 0x0FF6, 0x7FC2, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F, 0xFF90, 0x001B, 0x00F8, 0x03F8, 0x0FF7, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0x003A, 0x01F6, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0x003B, 0x03F9, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, 0xFFA6, 0x0079, 0x07F7, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, 0xFFAE, 0x007A, 0x07F8, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, 0xFFB6, 0x00F9, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, 0xFFBE, 0xFFBF, 0x01F7, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6, 0xFFC7, 0xFFC8, 0x01F8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF, 0xFFD0, 0xFFD1, 0x01F9, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8, 0xFFD9, 0xFFDA, 0x01FA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, 0x07F9, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEb, 0xFFEC, 0x3FE0, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, 0x7FC3, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0x03FA }; static uint16_t chrominance_ac_size_table [162] = { 0x0002, 0x0002, 0x0003, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0009, 0x000A, 0x000C, 0x0004, 0x0006, 0x0008, 0x0009, 0x000B, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0005, 0x0008, 0x000A, 0x000C, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0005, 0x0008, 0x000A, 0x000C, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0006, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0006, 0x000A, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0007, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0008, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0009, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000B, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000E, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000F, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000A }; static uint8_t bitsize [256] =/* bit size from 0 to 255 */ { 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }; static uint8_t zigzag_table [] = { 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63 }; /* quickcam 5000pro tables (very good quality) */ static uint8_t luminance_quant_table [] = { 0x04, 0x02, 0x03, 0x03, 0x03, 0x02, 0x04, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x06, 0x0a, 0x06, 0x06, 0x05, 0x05, 0x06, 0x0c, 0x08, 0x09, 0x07, 0x0a, 0x0e, 0x0c, 0x0f, 0x0f, 0x0e, 0x0c, 0x0e, 0x0f, 0x10, 0x12, 0x17, 0x13, 0x10, 0x11, 0x15, 0x11, 0x0d, 0x0e, 0x14, 0x1a, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1a, 0x19, 0x0f, 0x13, 0x1c, 0x1e, 0x1c, 0x19, 0x1e, 0x17, 0x19, 0x19, 0x18 }; static uint8_t chrominance_quant_table [] = { 0x04, 0x04, 0x04, 0x06, 0x05, 0x06, 0x0b, 0x06, 0x06, 0x0b, 0x18, 0x10, 0x0e, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }; /* * ####### Encoder functions ####### */ /* * This function implements 16 Step division for Q.15 format data * args: * numer - numerator * denom - denominator * * asserts: * none * * returns: division result */ static uint16_t DSP_Division (uint32_t numer, uint32_t denom) { uint16_t i; denom <<= 15; for (i=16; i>0; i--) { if (numer > denom) { numer -= denom; numer <<= 1; numer++; } else numer <<= 1; } return (uint16_t) numer; } /* * split yuyv data into YCBr planes * and fill matching encoder context fields * args: * jpeg_ctx - pointer to jpeg encoder context * input - pointer to input data * * asserts: * jpeg_ctx is not null * input is not null * * returns: none */ static void read_422_format (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *input) { /*assertions*/ assert(jpeg_ctx != NULL); assert(input != NULL); int32_t i, j; int16_t *Y1 = jpeg_ctx->Y1; /*64 int16 block*/ int16_t *Y2 = jpeg_ctx->Y2; int16_t *CB = jpeg_ctx->CB; int16_t *CR = jpeg_ctx->CR; uint16_t incr = jpeg_ctx->incr; uint8_t *tmp = NULL; tmp = input; for (i=8; i>0; i--) /*8 rows*/ { for (j=4; j>0; j--) /* 8 cols*/ { *Y1++ = *tmp++; *CB++ = *tmp++; *Y1++ = *tmp++; *CR++ = *tmp++; } for (j=4; j>0; j--) /* 8 cols*/ { *Y2++ = *tmp++; *CB++ = *tmp++; *Y2++ = *tmp++; *CR++ = *tmp++; } tmp += incr; /* next row (width - mcu_width)*/ } } /* Multiply Quantization table with quality factor to get LQT and CQT /* (Will use constant Quantization tables to make it faster) * args: * jpeg_ctx - pointer to jpeg encoder context * * asserts: * jpeg_ctx is not null * * returns: none */ static void initialize_quantization_tables (jpeg_encoder_ctx_t *jpeg_ctx) { /*assertions*/ assert(jpeg_ctx != NULL); uint16_t i, index; uint32_t value; for (i = 0; i < 64; i++) { index = zigzag_table [i]; value= luminance_quant_table [i]; jpeg_ctx->Lqt [index] = (uint8_t) value; jpeg_ctx->ILqt [i] = DSP_Division (0x8000, value); value = chrominance_quant_table [i]; jpeg_ctx->Cqt[index] = (uint8_t) value; jpeg_ctx->ICqt [i] = DSP_Division (0x8000, value); } } /* * multiply DCT Coefficients with Quantization table * and store in ZigZag location * args: * jpeg_ctx - pointer to jpeg encoder context * data - pointer to data for quantization (from DCT) * quant_table_ptr - pointer to quantization table * * asserts: * jpeg_ctx is not null * data is not null * quant_table_ptr is not null * * returns: none */ static void quantization (jpeg_encoder_ctx_t *jpeg_ctx, int16_t * const data, uint16_t * const quant_table_ptr) { /*assertions*/ assert(jpeg_ctx != NULL); assert(data != NULL); assert(quant_table_ptr != NULL); int16_t i; int32_t value; for (i=63; i>=0; i--) { value = data [i] * quant_table_ptr [i]; value = (value + 0x4000) >> 15; jpeg_ctx->Temp [zigzag_table [i]] = (int16_t) value; } } /* * add/code huffman table * args: * jpeg_ctx - pointer to jpeg encoder context * component - image component * output - pointer to output buffer * * asserts: * jpeg_ctx is not null * output is not null * * returns: pointer to output buffer */ static uint8_t *huffman (jpeg_encoder_ctx_t *jpeg_ctx, uint16_t component, uint8_t *output) { /*assertions*/ assert(jpeg_ctx != NULL); assert(output != NULL); uint16_t i; uint16_t *DcCodeTable, *DcSizeTable, *AcCodeTable, *AcSizeTable; int16_t *Temp_Ptr, Coeff, LastDc; uint16_t AbsCoeff, HuffCode, HuffSize, RunLength=0, DataSize=0, index; int16_t bits_in_next_word; uint16_t numbits; uint32_t data; Temp_Ptr = jpeg_ctx->Temp; Coeff = *Temp_Ptr++;/* Coeff = DC */ /* code DC - Temp[0] */ if (component == 1)/* luminance - Y */ { DcCodeTable = luminance_dc_code_table; DcSizeTable = luminance_dc_size_table; AcCodeTable = luminance_ac_code_table; AcSizeTable = luminance_ac_size_table; LastDc = jpeg_ctx->ldc1; jpeg_ctx->ldc1 = Coeff; } else /* Chrominance - U V */ { DcCodeTable = chrominance_dc_code_table; DcSizeTable = chrominance_dc_size_table; AcCodeTable = chrominance_ac_code_table; AcSizeTable = chrominance_ac_size_table; if (component == 2) /* Chrominance - U */ { LastDc = jpeg_ctx->ldc2; jpeg_ctx->ldc2 = Coeff; } else/* Chrominance - V */ { LastDc = jpeg_ctx->ldc3; jpeg_ctx->ldc3 = Coeff; } } Coeff = Coeff - LastDc; /* DC - LastDC */ AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; /*calculate data size*/ while (AbsCoeff != 0) { AbsCoeff >>= 1; DataSize++; } HuffCode = DcCodeTable [DataSize]; HuffSize = DcSizeTable [DataSize]; Coeff &= (1 << DataSize) - 1; data = (HuffCode << DataSize) | Coeff; numbits = HuffSize + DataSize; PUTBITS /* code AC */ for (i=63; i>0; i--) { if ((Coeff = *Temp_Ptr++) != 0) { while (RunLength > 15) { RunLength -= 16; data = AcCodeTable [161]; /* ZRL 0xF0 ( 16 - 0) */ numbits = AcSizeTable [161];/* ZRL */ PUTBITS } AbsCoeff = (Coeff < 0) ? -(Coeff--) : Coeff; if (AbsCoeff >> 8 == 0) /* Size <= 8 bits */ DataSize = bitsize [AbsCoeff]; else /* 16 => Size => 8 */ DataSize = bitsize [AbsCoeff >> 8] + 8; index = RunLength * 10 + DataSize; HuffCode = AcCodeTable [index]; HuffSize = AcSizeTable [index]; Coeff &= (1 << DataSize) - 1; data = (HuffCode << DataSize) | Coeff; numbits = HuffSize + DataSize; PUTBITS RunLength = 0; } else RunLength++;/* Add while Zero */ } if (RunLength != 0) { data = AcCodeTable [0]; /* EOB - 0x00 end of block */ numbits = AcSizeTable [0];/* EOB */ PUTBITS } return output; } /* * For bit Stuffing and EOI marker * args: * jpeg_ctx - pointer to jpeg encoder context * output - pointer to output buffer * * asserts: * jpeg_ctx is not null * output is not null * * returns: pointer to output buffer */ static uint8_t *close_bitstream (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output) { /*assertions*/ assert(jpeg_ctx != NULL); assert(output != NULL); if (jpeg_ctx->bitindex > 0) { jpeg_ctx->lcode <<= (32 - jpeg_ctx->bitindex); uint16_t count = (jpeg_ctx->bitindex + 7) >> 3; uint16_t i = 0; uint8_t *ptr = (uint8_t *) &jpeg_ctx->lcode + 3; for (i=count; i>0; i--) { if ((*output++ = *ptr--) == 0xff) *output++ = 0; } } /* End of image marker (EOI) */ *output++ = 0xFF; *output++ = 0xD9; return output; } /* * init jpeg encoder context * args: * jpeg_ctx - pointer to jpeg encoder context * image_width - image width (in pixels) * image_height - image height (in pixels) * * asserts: * jpeg_ctx is not null * * returns: none */ static void initialization (jpeg_encoder_ctx_t *jpeg_ctx, int image_width, int image_height) { /*assertions*/ assert(jpeg_ctx != NULL); uint16_t mcu_width, mcu_height, bytes_per_pixel; jpeg_ctx->image_width = image_width; jpeg_ctx->image_height = image_height; jpeg_ctx->mcu_width = mcu_width = 16; jpeg_ctx->horizontal_mcus = (uint16_t) (image_width >> 4);/* width/16 */ jpeg_ctx->mcu_height = mcu_height = 8; jpeg_ctx->vertical_mcus = (uint16_t) (image_height >> 3); /* height/8 */ bytes_per_pixel = 2; jpeg_ctx->length_minus_mcu_width = (uint16_t) ((image_width - mcu_width) * bytes_per_pixel); jpeg_ctx->length_minus_width = (uint16_t) (image_width * bytes_per_pixel); jpeg_ctx->mcu_width_size = (uint16_t) (mcu_width * bytes_per_pixel); jpeg_ctx->rows = jpeg_ctx->mcu_height; jpeg_ctx->cols = jpeg_ctx->mcu_width; jpeg_ctx->incr = jpeg_ctx->length_minus_mcu_width; jpeg_ctx->offset = (uint16_t) ((image_width * mcu_height) * bytes_per_pixel); jpeg_ctx->ldc1 = 0; jpeg_ctx->ldc2 = 0; jpeg_ctx->ldc3 = 0; jpeg_ctx->lcode = 0; jpeg_ctx->bitindex = 0; } /* * restart jpeg encoder context * args: * jpeg_ctx - pointer to jpeg encoder context * * asserts: * jpeg_ctx is not null * * returns: none */ static void jpeg_restart (jpeg_encoder_ctx_t *jpeg_ctx) { /*assertions*/ assert(jpeg_ctx != NULL); jpeg_ctx->ldc1 = 0; jpeg_ctx->ldc2 = 0; jpeg_ctx->ldc3 = 0; jpeg_ctx->lcode = 0; jpeg_ctx->bitindex = 0; } /* * encode single MCU * args: * jpeg_ctx - pointer to jpeg encoder context * output - pointer to output buffer * * asserts: * jpeg_ctx is not null * output is not null * * returns: pointer to ouptut buffer */ static uint8_t* encode_MCU (jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output) { /*assertions*/ assert(jpeg_ctx != NULL); assert(output != NULL); levelshift (jpeg_ctx->Y1); DCT (jpeg_ctx->Y1); quantization (jpeg_ctx, jpeg_ctx->Y1, jpeg_ctx->ILqt); output = huffman (jpeg_ctx, 1, output); levelshift (jpeg_ctx->Y2); DCT (jpeg_ctx->Y2); quantization (jpeg_ctx, jpeg_ctx->Y2, jpeg_ctx->ILqt); output = huffman (jpeg_ctx, 1, output); levelshift (jpeg_ctx->CB); DCT (jpeg_ctx->CB); quantization (jpeg_ctx, jpeg_ctx->CB, jpeg_ctx->ICqt); output = huffman (jpeg_ctx, 2, output); levelshift (jpeg_ctx->CR); DCT (jpeg_ctx->CR); quantization (jpeg_ctx, jpeg_ctx->CR, jpeg_ctx->ICqt); output = huffman (jpeg_ctx, 3, output); return output; } /* * Header markers for JPEG Encoder * args: * jpeg_ctx - pointer to jpeg encoder context * output - pointer to output buffer * * asserts * jpeg_ctx is not null * ouput is not null * * returns: pointer to output buffer */ static uint8_t *write_markers(jpeg_encoder_ctx_t *jpeg_ctx, uint8_t *output, int huff) { /*assertions*/ assert(jpeg_ctx != NULL); assert(output != NULL); uint16_t i, header_length; uint8_t number_of_components; // Start of image marker *output++ = 0xFF; *output++ = 0xD8; //added from here // Start of APP0 marker *output++ = 0xFF; *output++ = 0xE0; //header length *output++= 0x00; *output++= 0x10;//16 bytes //type if(huff) { //JFIF0 0x4A46494600 *output++= 0x4A; *output++= 0x46; *output++= 0x49; *output++= 0x46; *output++= 0x00; } else { // AVI10 0x4156493100 *output++= 0x41; *output++= 0x56; *output++= 0x49; *output++= 0x31; *output++= 0x00; } // version *output++= 0x01; *output++= 0x02; // density 0- no units 1- pix per inch 2- pix per mm *output++= 0x01; // xdensity - 120 *output++= 0x00; *output++= 0x78; // ydensity - 120 *output++= 0x00; *output++= 0x78; //thumb x y *output++= 0x00; *output++= 0x00; //to here // Quantization table marker *output++ = 0xFF; *output++ = 0xDB; // Quantization table length *output++ = 0x00; *output++ = 0x43; // Pq, Tq *output++ = 0x00; // Lqt table for (i=0; i<64; i++) *output++ = jpeg_ctx->Lqt [i]; // Quantization table marker *output++ = 0xFF; *output++ = 0xDB; // Quantization table length *output++ = 0x00; *output++ = 0x43; // Pq, Tq *output++ = 0x01; // Cqt table for (i=0; i<64; i++) *output++ = jpeg_ctx->Cqt [i]; if (huff) { // huffman table(DHT) *output++=0xff; *output++=0xc4; *output++=0x01; *output++=0xa2; memmove(output, &jpeg_huffman_table, JPG_HUFFMAN_TABLE_LENGTH);/*0x01a0*/ output+=JPG_HUFFMAN_TABLE_LENGTH; } number_of_components = 3; // Frame header(SOF) // Start of frame marker *output++ = 0xFF; *output++ = 0xC0; header_length = (uint16_t) (8 + 3 * number_of_components); // Frame header length *output++ = (uint8_t) (header_length >> 8); *output++ = (uint8_t) header_length; // Precision (P) *output++ = 0x08;/*8 bits*/ // image height *output++ = (uint8_t) (jpeg_ctx->image_height >> 8); *output++ = (uint8_t) jpeg_ctx->image_height; // image width *output++ = (uint8_t) (jpeg_ctx->image_width >> 8); *output++ = (uint8_t) jpeg_ctx->image_width; // Nf *output++ = number_of_components; /* type 422 */ *output++ = 0x01; /*id (y)*/ *output++ = 0x21; /*horiz|vertical */ *output++ = 0x00; /*quantization table used*/ *output++ = 0x02; /*id (u)*/ *output++ = 0x11; /*horiz|vertical*/ *output++ = 0x01; /*quantization table used*/ *output++ = 0x03; /*id (v)*/ *output++ = 0x11; /*horiz|vertical*/ *output++ = 0x01; /*quantization table used*/ // Scan header(SOF) // Start of scan marker *output++ = 0xFF; *output++ = 0xDA; header_length = (uint16_t) (6 + (number_of_components << 1)); // Scan header length *output++ = (uint8_t) (header_length >> 8); *output++ = (uint8_t) header_length; // Ns = number of scans *output++ = number_of_components; /* type 422*/ *output++ = 0x01; /*component id (y)*/ *output++ = 0x00; /*dc|ac tables*/ *output++ = 0x02; /*component id (u)*/ *output++ = 0x11; /*dc|ac tables*/ *output++ = 0x03; /*component id (v)*/ *output++ = 0x11; /*dc|ac tables*/ *output++ = 0x00; /*0 */ *output++ = 0x3F; /*63*/ *output++ = 0x00; /*0 */ return output; } /* * encode jpeg * args: * input - pointer to input buffer (yuyv format) * output - pointer to output buffer (jpeg format) * jpeg_ctx - pointer to jpeg encoder context * huff - huffman flag * * * asserts: * input is not null * ouput is not null * jpeg_ctx is not null * * returns: ouput size */ static int encode_jpeg (uint8_t *input, uint8_t *output, jpeg_encoder_ctx_t *jpeg_ctx, int huff) { /*assertions*/ assert(input != NULL); assert(output != NULL); assert(jpeg_ctx != NULL); int size; uint16_t i, j; uint8_t *tmp_ptr=NULL; uint8_t *tmp_iptr = input; uint8_t *tmp_optr = output; /* clean jpeg parameters*/ jpeg_restart(jpeg_ctx); /* Writing Marker Data */ tmp_optr = write_markers (jpeg_ctx, tmp_optr, huff); #ifdef USE_PLANAR_YUV uint8_t *yuv422 = calloc(jpeg_ctx->image_width * jpeg_ctx->image_height * 2, sizeof(uint8_t)); if(yuv422 == NULL) { fprintf(stderr, "V4L2_CORE: couldn't allocate memory for jpeg encoder (fatal)\n"); exit(-1); } yu12_to_yuyv(yuv422, input, jpeg_ctx->image_width, jpeg_ctx->image_height); tmp_iptr = yuv422; #endif for (i=0; i < jpeg_ctx->vertical_mcus; i++) /* height /8 */ { tmp_ptr = tmp_iptr; for (j=0; j< jpeg_ctx->horizontal_mcus; j++) /* width /16 */ { /*reads a block*/ read_422_format (jpeg_ctx, tmp_iptr); /*YUYV*/ /* Encode the data in MCU */ tmp_optr = encode_MCU (jpeg_ctx, tmp_optr); if(j < (jpeg_ctx->horizontal_mcus -1)) { tmp_iptr += jpeg_ctx->mcu_width_size; } else { tmp_iptr=tmp_ptr; } } tmp_iptr += jpeg_ctx->offset; } /* Close Routine */ #ifdef USE_PLANAR_YUV free(yuv422); #endif tmp_optr = close_bitstream (jpeg_ctx, tmp_optr); size = tmp_optr - output; tmp_iptr = NULL; tmp_optr = NULL; return (size); } /* * save frame data to a jpeg file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - filename string * * asserts: * vd is not null * * returns: error code */ int save_image_jpeg(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename) { /*assertions*/ assert(vd != NULL); int ret = E_OK; jpeg_encoder_ctx_t *jpeg_ctx = calloc(1, sizeof(jpeg_encoder_ctx_t)); if(jpeg_ctx == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_jpeg): %s\n", strerror(errno)); exit(-1); } uint8_t *jpeg = calloc((vd->format.fmt.pix.width * vd->format.fmt.pix.height) >> 1, sizeof(uint8_t)); if(jpeg == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_jpeg): %s\n", strerror(errno)); exit(-1); } /* Initialization of JPEG control structure */ initialization (jpeg_ctx, vd->format.fmt.pix.width, vd->format.fmt.pix.height); /* Initialization of Quantization Tables */ initialize_quantization_tables (jpeg_ctx); int jpeg_size = encode_jpeg(frame->yuv_frame, jpeg, jpeg_ctx, 1); if(v4l2core_save_data_to_file(filename, jpeg, jpeg_size)) { fprintf (stderr, "V4L2_CORE: (save_image_jpeg) couldn't capture Image to %s \n", filename); ret = E_FILE_IO_ERR; } /*clean up*/ free(jpeg); free(jpeg_ctx); return ret; } guvcview-2.0.2+debian/gview_v4l2core/save_image_png.c000066400000000000000000000174421256377215300225640ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "save_image.h" #include "colorspaces.h" /* * save rgb data into png format file * args: * filename - string with filename * width - image width (in pixels) * height - image height (in pixels) * data -pointer to rgb data to save * * asserts: * data is not null * * returns: error code */ static int save_png(const char *filename, int width, int height, uint8_t *data) { /*assertions*/ assert(data != NULL); int l=0; FILE *fp; png_structp png_ptr; png_infop info_ptr; png_text text_ptr[3]; png_bytep row_pointers[height]; /* open the file */ fp = fopen(filename, "wb"); if (fp == NULL) return (E_FILE_IO_ERR); /* * Create and initialize the png_struct with the desired error handler * functions. If you want to use the default stderr and longjump method, * you can supply NULL for the last three parameters. We also check that * the library version is compatible with the one used at compile time, * in case we are using dynamically linked libraries. */ png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (png_ptr == NULL) { fclose(fp); return (E_ALLOC_ERR); } /* Allocate/initialize the image information data. */ info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { fclose(fp); png_destroy_write_struct(&png_ptr, NULL); return (E_ALLOC_ERR); } /* Set error handling. REQUIRED if you aren't supplying your own * error handling functions in the png_create_write_struct() call. */ if (setjmp(png_jmpbuf(png_ptr))) { fclose(fp); png_destroy_write_struct(&png_ptr, &info_ptr); return (E_ALLOC_ERR); } /* set up the output control using standard C streams */ png_init_io(png_ptr, fp); /* * turn on or off filtering, and/or choose * specific filters. You can use either a single * PNG_FILTER_VALUE_NAME or the bitwise OR of one * or more PNG_FILTER_NAME masks. */ //png_set_filter(png_ptr, 0, // PNG_FILTER_NONE | PNG_FILTER_VALUE_NONE | // PNG_FILTER_SUB | PNG_FILTER_VALUE_SUB | // PNG_FILTER_UP | PNG_FILTER_VALUE_UP | // PNG_FILTER_AVE | PNG_FILTER_VALUE_AVE | // PNG_FILTER_PAETH | PNG_FILTER_VALUE_PAETH| // PNG_ALL_FILTERS); /* set the zlib compression level */ //png_set_compression_level(png_ptr, // Z_BEST_COMPRESSION); /* set other zlib parameters */ //png_set_compression_mem_level(png_ptr, 8); //png_set_compression_strategy(png_ptr, // Z_DEFAULT_STRATEGY); //png_set_compression_window_bits(png_ptr, 15); //png_set_compression_method(png_ptr, 8); //png_set_compression_buffer_size(png_ptr, 8192); png_set_IHDR(png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); /* * Optional gamma chunk is strongly suggested if you have any guess * as to the correct gamma of the image. */ //png_set_gAMA(png_ptr, info_ptr, gamma); /* Optionally write comments into the image */ text_ptr[0].key = "Title"; text_ptr[0].text = (char *) filename; text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; text_ptr[1].key = "Software"; text_ptr[1].text = "guvcview"; text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; text_ptr[2].key = "Description"; text_ptr[2].text = "File generated by guvcview "; text_ptr[2].compression = PNG_TEXT_COMPRESSION_NONE; #ifdef PNG_iTXt_SUPPORTED text_ptr[0].lang = NULL; text_ptr[1].lang = NULL; text_ptr[2].lang = NULL; #endif png_set_text(png_ptr, info_ptr, text_ptr, 3); /* Write the file header information. REQUIRED */ png_write_info(png_ptr, info_ptr); /* flip BGR pixels to RGB */ //png_set_bgr(png_ptr); /*?no longuer required?*/ /* Write the image data.*/ for (l = 0; l < height; l++) row_pointers[l] = data + l * width * 3; png_write_image(png_ptr, row_pointers); /* * You can write optional chunks like tEXt, zTXt, and tIME at the end * as well. Shouldn't be necessary in 1.1.0 and up as all the public * chunks are supported and you can use png_set_unknown_chunks() to * register unknown chunks into the info structure to be written out. */ /* It is REQUIRED to call this to finish writing the rest of the file */ png_write_end(png_ptr, info_ptr); /* * If you png_malloced a palette, free it here * (don't free info_ptr->palette, as recommended in versions 1.0.5m * and earlier of this example; * if libpng mallocs info_ptr->palette, libpng will free it). * If you allocated it with malloc() instead of png_malloc(), * use free() instead of png_free(). */ //png_free(png_ptr, palette); //palette=NULL; /* * Similarly, if you png_malloced any data that you passed in with * png_set_something(), such as a hist or trans array, free it here, * when you can be sure that libpng is through with it. */ //png_free(png_ptr, trans); //trans=NULL; /* clean up after the write, and free any memory allocated */ png_destroy_write_struct(&png_ptr, &info_ptr); /* close the file */ fflush(fp); //flush data stream to file system if(fsync(fileno(fp)) || fclose(fp)) { fprintf(stderr, "V4L2_CORE: (save png) couldn't write to file: %s\n", strerror(errno)); return(E_FILE_IO_ERR); } /* that's it */ return (E_OK); } /* * save frame data into a png file * args: * vd - pointer to device data * frame - pointer to frame buffer * filename - string with png filename name * * asserts: * vd is not null * * returns: error code */ int save_image_png(v4l2_dev_t *vd, v4l2_frame_buff_t *frame, const char *filename) { /*assertions*/ assert(vd != NULL); int width = vd->format.fmt.pix.width; int height = vd->format.fmt.pix.height; uint8_t *rgb = calloc( width * height * 3, sizeof(uint8_t)); if(rgb == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (save_image_png): %s\n", strerror(errno)); exit(-1); } #ifdef USE_PLANAR_YUV yu12_to_rgb24(rgb, frame->yuv_frame, width, height); #else yuyv2rgb(frame->yuv_frame, rgb, width, height); #endif int ret = save_png(filename, width, height, rgb); free(rgb); return ret; } guvcview-2.0.2+debian/gview_v4l2core/soft_autofocus.c000066400000000000000000000511111256377215300226520ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Dr. Alexander K. Seewald # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # autofocus - using dct # # # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "soft_autofocus.h" #include "dct.h" #include "gview.h" #include "core_time.h" #include "../config.h" #define _TH_ (80) /* default treshold = 1/80 of focus sharpness value*/ #define FLAT (0) #define LOCAL_MAX (1) #define LEFT (2) #define RIGHT (3) #define INCSTEP (4) #define MAX_ARR_S 20 #define SWAP(x, y) temp = (x); (x) = (y); (y) = temp extern int verbosity; typedef struct _focus_ctx_t { int focus; int step; int right; int left; int sharpness; int focus_sharpness; int sharpLeft; int sharpRight; v4l2_ctrl_t* focus_control; int f_max; int f_min; int f_step; int i_step; int focusDir; int arr_sharp[MAX_ARR_S]; int arr_foc[MAX_ARR_S]; int ind; int flag; int setFocus; int focus_wait; int last_focus; } focus_ctx_t; static focus_ctx_t *focus_ctx = NULL; static double sumAC[64]; static int ACweight[64] = { 0,1,2,3,4,5,6,7, 1,1,2,3,4,5,6,7, 2,2,2,3,4,5,6,7, 3,3,3,3,4,5,6,7, 4,4,4,4,4,5,6,7, 5,5,5,5,5,5,6,7, 7,7,7,7,7,7,7,7 }; /*use insert sort by default - it's the fastest for small and almost sorted arrays (our case)*/ static int sort_method = AUTOF_SORT_INSERT; /* 1 - Quick sort 2 - Shell sort 3- insert sort other - bubble sort*/ /* * sets a focus loop while autofocus is on * args: * none * * asserts: * focus_ctx is not null * * returns: none */ void v4l2core_soft_autofocus_set_focus() { /*asserts*/ assert(focus_ctx != NULL); focus_ctx->setFocus = 1; focus_ctx->ind = 0; focus_ctx->flag = 0; focus_ctx->right = 255; focus_ctx->left = 8; focus_ctx->focus = -1; /*reset focus*/ } /* * set autofocus sort method * args: * method - sort method * * asserts: * none * * returns: none */ void v4l2core_soft_autofocus_set_sort(int method) { sort_method = method; } /* * initiate software autofocus * args: * vd - pointer to device data * * asserts: * vd is not null * * returns: error code (0 - E_OK) */ int soft_autofocus_init (v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); if(!vd->has_focus_control_id) { fprintf(stderr, "V4L2_CORE: can't init software autofocus - no focus control detected\n"); return (E_UNKNOWN_CID_ERR); } if(focus_ctx != NULL) free(focus_ctx); focus_ctx = calloc(1, sizeof(focus_ctx_t)); if(focus_ctx == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_soft_autofocus_init): %s\n", strerror(errno)); exit(-1); } focus_ctx->focus_control = v4l2core_get_control_by_id(vd->has_focus_control_id); if(focus_ctx->focus_control == NULL) { fprintf(stderr, "V4L2_CORE: couldn't load focus control for id %x\n", vd->has_focus_control_id); free(focus_ctx); focus_ctx = NULL; return(E_UNKNOWN_CID_ERR); } focus_ctx->f_max = focus_ctx->focus_control->control.maximum; focus_ctx->f_min = focus_ctx->focus_control->control.minimum; focus_ctx->f_step = focus_ctx->focus_control->control.step; focus_ctx->i_step = (focus_ctx->f_max + 1 - focus_ctx->f_min)/32; if(focus_ctx->i_step <= focus_ctx->f_step) focus_ctx->i_step = focus_ctx->f_step * 2; //printf("V4L2_CORE: (soft_autofocus) focus step:%i\n", focus_ctx->i_step); focus_ctx->right = focus_ctx->f_max; focus_ctx->left = focus_ctx->f_min + focus_ctx->i_step; /*start with focus at 8*/ focus_ctx->focus = -1; focus_ctx->focus_wait = 0; focus_ctx->last_focus = focus_ctx->focus_control->value; /*make sure we wait for focus to settle on first check*/ if (focus_ctx->last_focus < 0) focus_ctx->last_focus = focus_ctx->f_max; memset(sumAC, 0, 64*sizeof(*sumAC)); /*reset array to 0*/ return (E_OK); } /* * quick sort * (the fastest and more complex - recursive, doesn't do well on almost sorted data) * args: * left - * right - * * asserts: * focus_ctx is not null * * returns: none */ static void q_sort(int left, int right) { /*asserts*/ assert(focus_ctx != NULL); int l_hold = left; int r_hold = right; int pivot = focus_ctx->arr_sharp[left]; int temp = focus_ctx->arr_foc[left]; while(left < right) { while((focus_ctx->arr_sharp[right] >= pivot) && (left < right)) right--; if (left != right) { focus_ctx->arr_sharp[left] = focus_ctx->arr_sharp[right]; focus_ctx->arr_foc[left] = focus_ctx->arr_foc[right]; left++; } while((left < right) && (focus_ctx->arr_sharp[left] <= pivot)) left++; if (left != right) { focus_ctx->arr_sharp[right] = focus_ctx->arr_sharp[left]; focus_ctx->arr_foc[right] = focus_ctx->arr_foc[left]; right--; } } focus_ctx->arr_sharp[left] = pivot; focus_ctx->arr_foc[left] = temp; pivot = left; if (l_hold < pivot) q_sort(l_hold, pivot-1); if (r_hold > pivot) q_sort(pivot+1, r_hold); } /* * shell sort * (based on insert sort, but with some optimization) * for small arrays insert sort is still faster * args: * size - * * asserts: * focus_ctx is not null * * returns: none */ static void s_sort(int size) { /*asserts*/ assert(focus_ctx != NULL); int i, j, temp, gap; for (gap = size / 2; gap > 0; gap /= 2) { for (i = gap; i <= size; i++) { for (j = i-gap; j >= 0 && (focus_ctx->arr_sharp[j] > focus_ctx->arr_sharp[j + gap]); j -= gap) { SWAP(focus_ctx->arr_sharp[j], focus_ctx->arr_sharp[j + gap]); SWAP(focus_ctx->arr_foc[j], focus_ctx->arr_foc[j + gap]); } } } } /* * insert sort * (fastest for small arrays, around 15 elements) * args: * size - * * asserts: * focus_ctx is not null * * returns: none */ static void i_sort (int size) { /*asserts*/ assert(focus_ctx != NULL); int i,j,temp; for (i = 1; i <= size; i++) { for(j = i; j > 0 && (focus_ctx->arr_sharp[j-1] > focus_ctx->arr_sharp[j]); j--) { SWAP(focus_ctx->arr_sharp[j],focus_ctx->arr_sharp[j-1]); SWAP(focus_ctx->arr_foc[j],focus_ctx->arr_foc[j-1]); } } } /* * bubble sort * (the simplest and most inefficient - in real test with focus data * it did better than shell or quick sort since focus data is almost * sorted) * args: * size - * * asserts: * focus_ctx is not null * * returns: none */ static void b_sort (int size) { int i, temp, swapped; do { swapped = 0; size--; for (i = 0 ; i <= size; ++i) { if (focus_ctx->arr_sharp[i+1] < focus_ctx->arr_sharp[i]) { SWAP(focus_ctx->arr_sharp[i],focus_ctx->arr_sharp[i+1]); SWAP(focus_ctx->arr_foc[i],focus_ctx->arr_foc[i+1]); swapped = 1; } } } while (swapped); } /* * sort focus values * args: * size - focus array size * * returns: best focus value */ static int focus_sort(int size) { if (size>=20) { fprintf(stderr, "V4L2_CORE: (soft_autofocus) focus array size=%d exceeds 20\n", size); size = 10; } switch(sort_method) { case AUTOF_SORT_QUICK: q_sort(0, size); break; case AUTOF_SORT_SHELL: s_sort(size); break; case AUTOF_SORT_BUBBLE: b_sort(size); break; default: case AUTOF_SORT_INSERT: i_sort(size); break; } /*better focus value*/ return(focus_ctx->arr_foc[size]); } /* * extract lum (y) data from image * args: * frame - image frame data pointer * dataY - pointer for lum (y) data * width - width of image frame (in pixels) * height - height of image frame (in pixels) * * asserts: * * returns: pointer to lum data buffer */ static int16_t *focus_extract_Y (uint8_t *frame, int16_t *dataY, int width, int height) { int i = 0; uint8_t *pimg; pimg = frame; for (i = 0; i < (height * width); ++i) { dataY[i]=(int16_t) *pimg++; // luma #ifdef USE_PLANAR_YUV #else pimg++; //yuyv - jump over chroma samples #endif } return (dataY); } /* * check focus * args: * none * * asserts: * focus_ctx is not null * * returns: focus code */ static int checkFocus() { /*asserts*/ assert(focus_ctx != NULL); /*change treshold according to sharpness*/ int TH = _TH_; //if(focus_ctx->focus_sharpness < (5 * _TH_)) TH = _TH_ * 4 ; if (focus_ctx->step <= focus_ctx->i_step) { if (abs((focus_ctx->sharpLeft-focus_ctx->focus_sharpness)<(focus_ctx->focus_sharpness/TH)) && (abs(focus_ctx->sharpRight-focus_ctx->focus_sharpness)<(focus_ctx->focus_sharpness/TH))) { return (FLAT); } else if (((focus_ctx->focus_sharpness-focus_ctx->sharpRight))>=(focus_ctx->focus_sharpness/TH) && ((focus_ctx->focus_sharpness-focus_ctx->sharpLeft))>=(focus_ctx->focus_sharpness/TH)) { /* * significantly down in both directions -> check another step * outside for local maximum */ focus_ctx->step=16; return (INCSTEP); } else { // one is significant, the other is not... int left=0; int right=0; if (abs((focus_ctx->sharpLeft-focus_ctx->focus_sharpness))>=(focus_ctx->focus_sharpness/TH)) { if (focus_ctx->sharpLeft>focus_ctx->focus_sharpness) left++; else right++; } if (abs((focus_ctx->sharpRight-focus_ctx->focus_sharpness))>=(focus_ctx->focus_sharpness/TH)) { if (focus_ctx->sharpRight>focus_ctx->focus_sharpness) right++; else left++; } if (left==right) return (FLAT); else if (left>right) return (LEFT); else return (RIGHT); } } else { if (((focus_ctx->focus_sharpness-focus_ctx->sharpRight))>=(focus_ctx->focus_sharpness/TH) && ((focus_ctx->focus_sharpness-focus_ctx->sharpLeft))>=(focus_ctx->focus_sharpness/TH)) { return (LOCAL_MAX); } else { return (FLAT); } } } /* * measure sharpness in MCU * args: * data - MCU data [8x8] * weight - MCU weight for sharpness measure. * * asserts: * none * * returns: none */ static void getSharpnessMCU (int16_t *data, double weight) { int i=0; int j=0; levelshift (data); DCT (data); for (i=0;i<8;i++) { for(j=0;j<8;j++) { sumAC[i*8+j]+=data[i*8+j]*data[i*8+j]*weight; } } } /* * sharpness in focus window * args: * frame - pointer to image frame * width - frame width * height - frame height * t - highest order coef * * asserts: * none * * returns: sharpness value */ int soft_autofocus_get_sharpness (uint8_t *frame, int width, int height, int t) { float res=0; int numMCUx = width/(8*2); /*covers 1/2 of width - width should be even*/ int numMCUy = height/(8*2); /*covers 1/2 of height- height should be even*/ int16_t dataMCU[64]; int16_t* data; int16_t *Y = calloc(width * height, sizeof(int16_t)); if(Y == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (soft_autofocus_get_sharpness): %s\n", strerror(errno)); exit(-1); } double weight; double xp_; int ctx = numMCUx >> 1; /*center*/ int cty = numMCUy >> 1; double rad=ctx/2; if (cty>1)+i)*width +(((width-(numMCUx-(xp*2))*8)>>1)+j)]; } } getSharpnessMCU(data,weight); cnt2++; } } free(Y); for (i=0;i<=t;i++) { for(j=0;ji_step * 2; int step2 = focus_ctx->i_step / 2; if (step2 <= 0 ) step2 = 1; int focus=0; switch (focus_ctx->flag) { /*--------- first time - run sharpness algorithm -----------------*/ if(focus_ctx->ind >= 20) { fprintf (stderr, "V4L2_CORE: (soft_autofocus) ind=%d exceeds 20\n", focus_ctx->ind); focus_ctx->ind = 10; } case 0: /*sample left to right at higher step*/ focus_ctx->arr_sharp[focus_ctx->ind] = focus_ctx->sharpness; focus_ctx->arr_foc[focus_ctx->ind] = focus_ctx->focus; /*reached max focus value*/ if (focus_ctx->focus >= focus_ctx->right ) { /*get left and right from arr_sharp*/ focus = focus_sort(focus_ctx->ind); /*get a window around the best value*/ focus_ctx->left = (focus- step/2); focus_ctx->right = (focus + step/2); if (focus_ctx->left < focus_ctx->f_min) focus_ctx->left = focus_ctx->f_min; if (focus_ctx->right > focus_ctx->f_max) focus_ctx->right = focus_ctx->f_max; focus_ctx->focus = focus_ctx->left; focus_ctx->ind = 0; focus_ctx->flag = 1; } else /*increment focus*/ { focus_ctx->focus=focus_ctx->arr_foc[focus_ctx->ind] + step; /*next focus*/ focus_ctx->ind++; focus_ctx->flag = 0; } break; case 1: /*sample left to right at lower step - fine tune*/ focus_ctx->arr_sharp[focus_ctx->ind] = focus_ctx->sharpness; focus_ctx->arr_foc[focus_ctx->ind] = focus_ctx->focus; /*reached window max focus*/ if (focus_ctx->focus >= focus_ctx->right ) { /*get left and right from arr_sharp*/ focus = focus_sort(focus_ctx->ind); /*get the best value*/ focus_ctx->focus = focus; focus_ctx->focus_sharpness = focus_ctx->arr_sharp[focus_ctx->ind]; focus_ctx->step = focus_ctx->i_step; /*first step for focus tracking*/ focus_ctx->focusDir = FLAT; /*no direction for focus*/ focus_ctx->flag = 2; } else /*increment focus*/ { focus_ctx->focus=focus_ctx->arr_foc[focus_ctx->ind] + step2; /*next focus*/ focus_ctx->ind++; focus_ctx->flag = 1; } break; case 2: /* set treshold in order to sharpness*/ if (focus_ctx->setFocus) { /*reset*/ focus_ctx->setFocus = 0; focus_ctx->flag= 0; focus_ctx->right = focus_ctx->f_max; focus_ctx->left = focus_ctx->f_min + focus_ctx->i_step; focus_ctx->ind = 0; } else { /*track focus*/ focus_ctx->focus_sharpness = focus_ctx->sharpness; focus_ctx->flag = 3; focus_ctx->sharpLeft = 0; focus_ctx->sharpRight = 0; focus_ctx->focus += focus_ctx->step; /*check right*/ } break; case 3: /*track focus*/ focus_ctx->flag = 4; focus_ctx->sharpRight = focus_ctx->sharpness; focus_ctx->focus -= (2*focus_ctx->step); /*check left*/ break; case 4: /*track focus*/ focus_ctx->sharpLeft=focus_ctx->sharpness; int ret=0; ret = checkFocus(); switch (ret) { case LOCAL_MAX: focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ focus_ctx->step = focus_ctx->i_step; focus_ctx->flag = 2; break; case FLAT: if(focus_ctx->focusDir == FLAT) { focus_ctx->step = focus_ctx->i_step; if(focus_ctx->focus_sharpness < 4 * _TH_) { /* 99% chance we lost focus */ /* move focus to half the range */ focus_ctx->focus = focus_ctx->f_max / 2; } else { focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ } focus_ctx->flag = 2; } else if (focus_ctx->focusDir == RIGHT) { focus_ctx->focus += 2*focus_ctx->step; /*go right*/ focus_ctx->step = focus_ctx->i_step; focus_ctx->flag = 2; } else { /*go left*/ focus_ctx->step = focus_ctx->i_step; focus_ctx->flag = 2; } break; case RIGHT: focus_ctx->focus += 2*focus_ctx->step; /*go right*/ focus_ctx->flag = 2; break; case LEFT: /*keep focus on left*/ focus_ctx->flag = 2; break; case INCSTEP: focus_ctx->focus += focus_ctx->step; /*return to orig. focus*/ focus_ctx->step = 2 * focus_ctx->i_step; focus_ctx->flag = 2; break; } break; } /*clip focus, right and left*/ focus_ctx->focus=(focus_ctx->focus > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->focus < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->focus); focus_ctx->right=(focus_ctx->right > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->right < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->right); focus_ctx->left =(focus_ctx->left > focus_ctx->f_max) ? focus_ctx->f_max : ((focus_ctx->left < focus_ctx->f_min) ? focus_ctx->f_min : focus_ctx->left); return focus_ctx->focus; } /* * run the software autofocus * args: * vd - pointer to device data * frame - pointer to frame buffer * * asserts: * vd is not null * * returns: 1 - running 0- focused * (only matters for non-continue focus) */ int soft_autofocus_run(v4l2_dev_t *vd, v4l2_frame_buff_t *frame) { /*asserts*/ assert(vd != NULL); if (focus_ctx->focus < 0) { /*starting autofocus*/ focus_ctx->focus = focus_ctx->left; /*start left*/ focus_ctx->focus_control->value = focus_ctx->focus; if (v4l2core_set_control_value_by_id(focus_ctx->focus_control->control.id) != 0) fprintf(stderr, "V4L2_CORE: (sof_autofocus) couldn't set focus to %d\n", focus_ctx->focus); /*number of frames until focus is stable*/ /*1.4 ms focus time - every 1 step*/ focus_ctx->focus_wait = (int) abs(focus_ctx->focus - focus_ctx->last_focus)*1.4/((1000*vd->fps_num)/vd->fps_denom)+1; focus_ctx->last_focus = focus_ctx->focus; } else { if (focus_ctx->focus_wait == 0) { focus_ctx->sharpness = soft_autofocus_get_sharpness ( frame->yuv_frame, vd->format.fmt.pix.width, vd->format.fmt.pix.height, 5); if (verbosity > 1) printf("V4L2_CORE: (sof_autofocus) sharp=%d focus_sharp=%d foc=%d right=%d left=%d ind=%d flag=%d\n", focus_ctx->sharpness, focus_ctx->focus_sharpness, focus_ctx->focus, focus_ctx->right, focus_ctx->left, focus_ctx->ind, focus_ctx->flag); focus_ctx->focus = soft_autofocus_get_focus_value(); if ((focus_ctx->focus != focus_ctx->last_focus)) { focus_ctx->focus_control->value = focus_ctx->focus; if (v4l2core_set_control_value_by_id(focus_ctx->focus_control->control.id) != 0) fprintf(stderr, "V4L2_CORE: (sof_autofocus) couldn't set focus to %d\n", focus_ctx->focus); /*number of frames until focus is stable*/ /*1.4 ms focus time - every 1 step*/ focus_ctx->focus_wait = (int) abs(focus_ctx->focus - focus_ctx->last_focus)*1.4/((1000*vd->fps_num)/vd->fps_denom)+1; } focus_ctx->last_focus = focus_ctx->focus; } else { focus_ctx->focus_wait--; if (verbosity > 1) printf("V4L2_CORE: (soft_autofocus) Wait Frame: %d\n", focus_ctx->focus_wait); } } return (focus_ctx->setFocus); } /* * close and clean software autofocus * args: * none * * asserts: * none * * returns: none */ void v4l2core_soft_autofocus_close() { if(focus_ctx != NULL) free(focus_ctx); focus_ctx = NULL; } guvcview-2.0.2+debian/gview_v4l2core/soft_autofocus.h000066400000000000000000000063441256377215300226670ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Dr. Alexander K. Seewald # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # autofocus - using dct for sharpness measure # # # # # ********************************************************************************/ #ifndef SOFT_AUTOFOCUS_H #define SOFT_AUTOFOCUS_H #include #include #include "v4l2_core.h" /* * initiate software autofocus * args: * vd - pointer to device data * * asserts: * vd is not null * * returns: error code (0 - E_OK) */ int soft_autofocus_init (v4l2_dev_t *vd); /* * run the software autofocus * args: * vd - pointer to device data * frame - pointer to frame buffer * * asserts: * vd is not null * * returns: 1 - running 0- focused * (only matters for non-continue focus) */ int soft_autofocus_run(v4l2_dev_t *vd, v4l2_frame_buff_t *frame); /* * sharpness in focus window * args: * frame - pointer to image frame * width - frame width * height - frame height * t - highest order coef * * asserts: * none * * returns: sharpness value */ int soft_autofocus_get_sharpness (uint8_t *frame, int width, int height, int t); /* * get focus value * args: * none * * asserts: * focus_ctx is not null * * returns: focus code */ int soft_autofocus_get_focus_value (); #endifguvcview-2.0.2+debian/gview_v4l2core/uvc_h264.c000066400000000000000000000675751256377215300211740ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # Nobuhiro Iwamatsu # # Add UYVY color support(Macbook iSight) # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /* support for internationalization - i18n */ #include #include #include #include #include #include #include #include #include #include "gview.h" #include "../config.h" /*h264 decoder (libavcodec)*/ #ifdef HAVE_AVCODEC_H #include #else #ifdef HAVE_LIBAVCODEC_AVCODEC_H #include #else #ifdef HAVE_FFMPEG_AVCODEC_H #include #else #include #endif #endif #endif #define LIBAVCODEC_VER_AT_LEAST(major,minor) (LIBAVCODEC_VERSION_MAJOR > major || \ (LIBAVCODEC_VERSION_MAJOR == major && \ LIBAVCODEC_VERSION_MINOR >= minor)) #if !LIBAVCODEC_VER_AT_LEAST(54,25) #define AV_CODEC_ID_H264 CODEC_ID_H264 #endif #include "uvc_h264.h" #include "v4l2_formats.h" // GUID of the UVC H.264 extension unit: {A29E7641-DE04-47E3-8B2B-F4341AFF003B} #define GUID_UVCX_H264_XU {0x41, 0x76, 0x9E, 0xA2, 0x04, 0xDE, 0xE3, 0x47, 0x8B, 0x2B, 0xF4, 0x34, 0x1A, 0xFF, 0x00, 0x3B} extern int verbosity; typedef struct _h264_decoder_context_t { AVCodec *codec; AVCodecContext *context; AVFrame *picture; int width; int height; int pic_size; } h264_decoder_context_t; static h264_decoder_context_t *h264_ctx = NULL; /*h264 support type*/ static int h264_support = H264_NONE; /*none by default*/ /* * request a IDR frame from the H264 encoder * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: none */ void h264_request_idr(v4l2_dev_t *vd) { request_h264_frame_type(vd, PICTURE_TYPE_IDR_FULL); } /* * get h264 support type * args: * none * * asserts: * none * * returns: support type (H264_NONE; H264_MUXED; H264_FRAME) */ int h264_get_support() { return h264_support; } /* * print probe/commit data * args: * data - pointer to probe/commit config data * * asserts: * data is not null * * returns: void */ static void print_probe_commit_data(uvcx_video_config_probe_commit_t *data) { /*asserts*/ assert(data != NULL); printf("uvcx_video_config_probe_commit:\n"); printf("\tFrameInterval: %i\n", data->dwFrameInterval); printf("\tBitRate: %i\n", data->dwBitRate); printf("\tHints: 0x%X\n", data->bmHints); printf("\tConfigurationIndex: %i\n", data->wConfigurationIndex); printf("\tWidth: %i\n", data->wWidth); printf("\tHeight: %i\n", data->wHeight); printf("\tSliceUnits: %i\n", data->wSliceUnits); printf("\tSliceMode: %i\n", data->wSliceMode); printf("\tProfile: %i\n", data->wProfile); printf("\tIFramePeriod: %i\n", data->wIFramePeriod); printf("\tEstimatedVideoDelay: %i\n",data->wEstimatedVideoDelay); printf("\tEstimatedMaxConfigDelay: %i\n",data->wEstimatedMaxConfigDelay); printf("\tUsageType: %i\n",data->bUsageType); printf("\tRateControlMode: %i\n",data->bRateControlMode); printf("\tTemporalScaleMode: %i\n",data->bTemporalScaleMode); printf("\tSpatialScaleMode: %i\n",data->bSpatialScaleMode); printf("\tSNRScaleMode: %i\n",data->bSNRScaleMode); printf("\tStreamMuxOption: %i\n",data->bStreamMuxOption); printf("\tStreamFormat: %i\n",data->bStreamFormat); printf("\tEntropyCABAC: %i\n",data->bEntropyCABAC); printf("\tTimestamp: %i\n",data->bTimestamp); printf("\tNumOfReorderFrames: %i\n",data->bNumOfReorderFrames); printf("\tPreviewFlipped: %i\n",data->bPreviewFlipped); printf("\tView: %i\n",data->bView); printf("\tReserved1: %i\n",data->bReserved1); printf("\tReserved2: %i\n",data->bReserved2); printf("\tStreamID: %i\n",data->bStreamID); printf("\tSpatialLayerRatio: %i\n",data->bSpatialLayerRatio); printf("\tLeakyBucketSize: %i\n",data->wLeakyBucketSize); } /* * resets the h264 encoder * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: 0 on success or error code on fail */ static int uvcx_video_encoder_reset(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); uvcx_encoder_reset encoder_reset_req = {0}; int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_ENCODER_RESET, UVC_SET_CUR, &encoder_reset_req)) < 0) fprintf(stderr, "V4L2_CORE: (UVCX_ENCODER_RESET) error: %s\n", strerror(errno)); return err; } /* * probes the h264 encoder config * args: * vd - pointer to video device data * query - probe query * uvcx_video_config - pointer to probe/commit config data * * asserts: * vd is not null * * returns: 0 on success or error code on fail */ static int uvcx_video_probe(v4l2_dev_t *vd, uint8_t query, uvcx_video_config_probe_commit_t *uvcx_video_config) { /*assertions*/ assert(vd != NULL); int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_VIDEO_CONFIG_PROBE, query, uvcx_video_config)) < 0) fprintf(stderr, "V4L2_CORE: (UVCX_VIDEO_CONFIG_PROBE) error: %s\n", strerror(errno)); return err; } /* * commits the h264 encoder config * args: * vd - pointer to video device data * uvcx_video_config - pointer to probe/commit config data * * asserts: * vd is not null * * returns: 0 on success or error code on fail */ static int uvcx_video_commit(v4l2_dev_t *vd, uvcx_video_config_probe_commit_t *uvcx_video_config) { /*assertions*/ assert(vd != NULL); int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_VIDEO_CONFIG_COMMIT, UVC_SET_CUR, uvcx_video_config)) < 0) fprintf(stderr, "V4L2_CORE: (UVCX_VIDEO_CONFIG_COMMIT) error: %s\n", strerror(errno)); return err; } /* * gets the uvc h264 xu control unit id, if any * args: * vd - pointer to video device data * * asserts: * vd is not null * device_list->list_devices is not null * * returns: unit id or 0 if none * (also sets vd->h264_unit_id) */ uint8_t get_uvc_h624_unit_id (v4l2_dev_t *vd) { if(verbosity > 1) printf("V4L2_CORE: checking for UVCX_H264 unit id\n"); uint8_t guid[16] = GUID_UVCX_H264_XU; vd->h264_unit_id = get_guid_unit_id (vd, guid); return vd->h264_unit_id; } /* * check for uvc h264 support by querying UVCX_VERSION * although geting a unit id > 0 from xu_get_unit_id * should be enought * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 1 if support available or 0 otherwise */ int check_h264_support(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return 0; } uvcx_version_t uvcx_version; if(v4l2core_query_xu_control(vd->h264_unit_id, UVCX_VERSION, UVC_GET_CUR, &uvcx_version) < 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 in unit_id %d\n", vd->h264_unit_id); return 0; } if(verbosity > 0) printf("V4L2_CORE: device seems to support uvc H264 (version: %d) in unit_id %d\n", uvcx_version.wVersion, vd->h264_unit_id); return 1; } /* * adds h264 to the format list, if supported by device * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: void */ void add_h264_format(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); assert(vd->list_stream_formats != NULL); if(verbosity > 0) printf("V4L2_CORE: checking muxed H264 format support\n"); if(v4l2core_get_frame_format_index(V4L2_PIX_FMT_H264) >= 0) { if(verbosity > 0) printf("V4L2_CORE: H264 format already in list\n"); h264_support = H264_FRAME; /*check the h264 unit id (if any) */ get_uvc_h624_unit_id(vd); return; /*H264 is already in the list*/ } if(get_uvc_h624_unit_id(vd) <= 0) { h264_support = H264_NONE; return; /*no unit id found for h264*/ } if(!check_h264_support(vd)) { h264_support = H264_NONE; return; /*no XU support for h264*/ } int mjpg_index = v4l2core_get_frame_format_index(V4L2_PIX_FMT_MJPEG); if(mjpg_index < 0) /*MJPG must be available for muxed uvc H264 streams*/ return; /*add the format to the list*/ if(verbosity > 0) printf("V4L2_CORE: adding muxed H264 format\n"); /*if we got here then muxed h264 is supported*/ h264_support = H264_MUXED; vd->numb_formats++; /*increment number of formats*/ int fmtind = vd->numb_formats; vd->list_stream_formats = realloc( vd->list_stream_formats, fmtind * sizeof(v4l2_stream_formats_t)); if(vd->list_stream_formats == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].format = V4L2_PIX_FMT_H264; snprintf(vd->list_stream_formats[fmtind-1].fourcc , 5, "H264"); vd->list_stream_formats[fmtind-1].list_stream_cap = NULL; vd->list_stream_formats[fmtind-1].numb_res = 0; /*add MJPG resolutions and frame rates for H264*/ int numb_res = vd->list_stream_formats[mjpg_index].numb_res; int i=0, j=0; int res_index = 0; for(i=0; i < numb_res; i++) { int width = vd->list_stream_formats[mjpg_index].list_stream_cap[i].width; int height = vd->list_stream_formats[mjpg_index].list_stream_cap[i].height; res_index++; vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap, res_index * sizeof(v4l2_stream_cap_t)); if(vd->list_stream_formats[fmtind-1].list_stream_cap == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].numb_res = res_index; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].width = width; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].height = height; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num = NULL; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom = NULL; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].numb_frates = 0; /*add frates*/ int numb_frates = vd->list_stream_formats[mjpg_index].list_stream_cap[i].numb_frates; int frate_index = 0; for(j=0; j < numb_frates; j++) { int framerate_num = vd->list_stream_formats[mjpg_index].list_stream_cap[i].framerate_num[j]; int framerate_denom = vd->list_stream_formats[mjpg_index].list_stream_cap[i].framerate_denom[j]; frate_index++; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].numb_frates = frate_index; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num, frate_index * sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_num[frate_index-1] = framerate_num; vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom, frate_index * sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_h264_format): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[res_index-1].framerate_denom[frate_index-1] = framerate_denom; } } } /* * sets h264 muxed format (must not be called while streaming) * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void set_h264_muxed_format(v4l2_dev_t *vd) { uvcx_video_config_probe_commit_t *config_probe_req = &(vd->h264_config_probe_req); /* reset the encoder*/ uvcx_video_encoder_reset(vd); /* * Get default values (safe) */ if(!(vd->h264_no_probe_default)) uvcx_video_probe(vd, UVC_GET_DEF, config_probe_req); /*reset it - must be set on every call*/ vd->h264_no_probe_default = 0; /*set resolution*/ config_probe_req->wWidth = vd->format.fmt.pix.width; config_probe_req->wHeight = vd->format.fmt.pix.height; /*set frame rate in 100ns units*/ uint32_t frame_interval = (vd->fps_num * 1000000000LL / vd->fps_denom)/100; config_probe_req->dwFrameInterval = frame_interval; /*set the aux stream (h264)*/ config_probe_req->bStreamMuxOption = STREAMMUX_H264; /*probe the format*/ uvcx_video_probe(vd, UVC_SET_CUR, config_probe_req); uvcx_video_probe(vd, UVC_GET_CUR, config_probe_req); if(config_probe_req->wWidth != vd->format.fmt.pix.width) { fprintf(stderr, "V4L2_CORE: H264 config probe: requested width %i but got %i\n", vd->format.fmt.pix.width, config_probe_req->wWidth); vd->format.fmt.pix.width = config_probe_req->wWidth; } if(config_probe_req->wHeight != vd->format.fmt.pix.height) { fprintf(stderr, "V4L2_CORE: H264 config probe: requested height %i but got %i\n", vd->format.fmt.pix.height, config_probe_req->wHeight); vd->format.fmt.pix.height = config_probe_req->wHeight; } if(config_probe_req->dwFrameInterval != frame_interval) { fprintf(stderr, "V4L2_CORE: H264 config probe: requested frame interval %i but got %i\n", frame_interval, config_probe_req->dwFrameInterval); } /*commit the format*/ uvcx_video_commit(vd, config_probe_req); /*print probe/commit data*/ if(verbosity > 0) print_probe_commit_data(config_probe_req); } /* * request a frame of type wPictureType to the h264 encoder * args: * vd - pointer to video device data * type - frame type * * asserts: * vd is not null * * returns: error code */ int request_h264_frame_type(v4l2_dev_t *vd, uint16_t type) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } uvcx_picture_type_control_t picture_type_req; picture_type_req.wLayerID = 0; picture_type_req.wPicType = type; int err = E_OK; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_PICTURE_TYPE_CONTROL, UVC_SET_CUR, &picture_type_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_PICTURE_TYPE_CONTROL) SET_CUR error: %s\n", strerror(errno)); } return err; } /* * resets the h264 encoder * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: 0 on success or error code on fail */ int h264_reset_encoder(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); /* reset the encoder*/ return uvcx_video_encoder_reset(vd); } /* * get the video rate control mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: video rate control mode (FIXME: 0xff on error) */ uint8_t h264_get_video_rate_control_mode(v4l2_dev_t *vd, uint8_t query) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return 0xff; } uvcx_rate_control_mode_t rate_control_mode_req; rate_control_mode_req.wLayerID = 0; if((v4l2core_query_xu_control(vd->h264_unit_id, UVCX_RATE_CONTROL_MODE, query, &rate_control_mode_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_RATE_CONTROL_MODE) query (%u) error: %s\n", query, strerror(errno)); return 0xff; } return rate_control_mode_req.bRateControlMode; } /* * set the video rate control mode * args: * vd - pointer to video device data * mode - rate mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_video_rate_control_mode(v4l2_dev_t *vd, uint8_t mode) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } uvcx_rate_control_mode_t rate_control_mode_req; rate_control_mode_req.wLayerID = 0; rate_control_mode_req.bRateControlMode = mode; int err = E_OK; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_RATE_CONTROL_MODE, UVC_SET_CUR, &rate_control_mode_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_RATE_CONTROL_MODE) SET_CUR error: %s\n", strerror(errno)); } return err; } /* * get the temporal scale mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t h264_get_temporal_scale_mode(v4l2_dev_t *vd, uint8_t query) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return 0xff; } uvcx_temporal_scale_mode_t temporal_scale_mode_req; temporal_scale_mode_req.wLayerID = 0; if(v4l2core_query_xu_control(vd->h264_unit_id, UVCX_TEMPORAL_SCALE_MODE, query, &temporal_scale_mode_req) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_TEMPORAL_SCALE_MODE) query (%u) error: %s\n", query, strerror(errno)); return 0xff; } return temporal_scale_mode_req.bTemporalScaleMode; } /* * set the temporal scale mode * args: * vd - pointer to video device data * mode - temporal scale mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_temporal_scale_mode(v4l2_dev_t *vd, uint8_t mode) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } uvcx_temporal_scale_mode_t temporal_scale_mode_req; temporal_scale_mode_req.wLayerID = 0; temporal_scale_mode_req.bTemporalScaleMode = mode; int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_TEMPORAL_SCALE_MODE, UVC_SET_CUR, &temporal_scale_mode_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_TEMPORAL_SCALE_MODE) SET_CUR error: %s\n", strerror(errno)); } return err; } /* * get the spatial scale mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t h264_get_spatial_scale_mode(v4l2_dev_t *vd, uint8_t query) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return 0xff; } uvcx_spatial_scale_mode_t spatial_scale_mode_req; spatial_scale_mode_req.wLayerID = 0; if(v4l2core_query_xu_control(vd->h264_unit_id, UVCX_SPATIAL_SCALE_MODE, query, &spatial_scale_mode_req) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_SPATIAL_SCALE_MODE) query (%u) error: %s\n", query, strerror(errno)); return 0xff; } return spatial_scale_mode_req.bSpatialScaleMode; } /* * set the spatial scale mode * args: * vd - pointer to video device data * mode - spatial scale mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_spatial_scale_mode(v4l2_dev_t *vd, uint8_t mode) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } uvcx_spatial_scale_mode_t spatial_scale_mode_req; spatial_scale_mode_req.wLayerID = 0; spatial_scale_mode_req.bSpatialScaleMode = mode; int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_SPATIAL_SCALE_MODE, UVC_SET_CUR, &spatial_scale_mode_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_SPATIAL_SCALE_MODE) SET_CUR error: %s\n", strerror(errno)); } return err; } /* * query the frame rate config * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t h264_query_frame_rate_config(v4l2_dev_t *vd, uint8_t query) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return 0xffffffff; } uvcx_framerate_config_t framerate_req; framerate_req.wLayerID = 0; if(v4l2core_query_xu_control(vd->h264_unit_id, UVCX_FRAMERATE_CONFIG, query, &framerate_req) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_FRAMERATE_CONFIG) query (%u) error: %s\n", query, strerror(errno)); return 0xffffffff; } return framerate_req.dwFrameInterval; } /* * get the frame rate config * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t h264_get_frame_rate_config(v4l2_dev_t *vd) { return h264_query_frame_rate_config(vd, UVC_GET_CUR); } /* * set the frame rate config * args: * vd - pointer to video device data * framerate - framerate * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_frame_rate_config(v4l2_dev_t *vd, uint32_t framerate) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } uvcx_framerate_config_t framerate_req; framerate_req.wLayerID = 0; framerate_req.dwFrameInterval = framerate; int err = 0; if((err = v4l2core_query_xu_control(vd->h264_unit_id, UVCX_FRAMERATE_CONFIG, UVC_SET_CUR, &framerate_req)) < 0) { fprintf(stderr, "V4L2_CORE: (UVCX_FRAMERATE_CONFIG) SET_CUR error: %s\n", strerror(errno)); } return err; } /* * updates the h264_probe_commit_req field * args: * vd - pointer to video device data * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) * config_probe_cur - pointer to uvcx_video_config_probe_commit_t: * if null vd->h264_config_probe_req will be used * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_probe_config_probe_req( v4l2_dev_t *vd, uint8_t query, uvcx_video_config_probe_commit_t *config_probe_req) { /*asserts*/ assert(vd != NULL); if(vd->h264_unit_id <= 0) { if(verbosity > 0) printf("V4L2_CORE: device doesn't seem to support uvc H264 (%i)\n", vd->h264_unit_id); return E_NO_STREAM_ERR; } if(config_probe_req == NULL) config_probe_req = &(vd->h264_config_probe_req); return uvcx_video_probe(vd, query, config_probe_req); } /* * ############# H264 decoder ############## */ /* * check if h264 decoder is available from libavcodec * args: * none * * asserts: * none * * returns: TRUE (1) * FALSE(0) */ //uint8_t h264_has_decoder() //{ // if(avcodec_find_decoder(AV_CODEC_ID_H264)) // return TRUE; // else // return FALSE; //} /* * init h264 decoder context * args: * width - image width * height - image height * * asserts: * none * * returns: error code (0 - E_OK) */ int h264_init_decoder(int width, int height) { #if !LIBAVCODEC_VER_AT_LEAST(53,34) avcodec_init(); #endif /* * register all the codecs (we can also register only the codec * we wish to have smaller code) */ avcodec_register_all(); if(h264_ctx != NULL) h264_close_decoder(); h264_ctx = calloc(1, sizeof(h264_decoder_context_t)); if(h264_ctx == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); exit(-1); } h264_ctx->codec = avcodec_find_decoder(AV_CODEC_ID_H264); if(!h264_ctx->codec) { fprintf(stderr, "V4L2_CORE: (H264 decoder) codec not found (please install libavcodec-extra for H264 support)\n"); free(h264_ctx); h264_ctx = NULL; return E_NO_CODEC; } #if LIBAVCODEC_VER_AT_LEAST(53,6) h264_ctx->context = avcodec_alloc_context3(h264_ctx->codec); avcodec_get_context_defaults3 (h264_ctx->context, h264_ctx->codec); #else h264_ctx->context = avcodec_alloc_context(); avcodec_get_context_defaults(h264_ctx->context); #endif if(h264_ctx->context == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (h264_init_decoder): %s\n", strerror(errno)); exit(-1); } h264_ctx->context->flags2 |= CODEC_FLAG2_FAST; h264_ctx->context->pix_fmt = PIX_FMT_YUV420P; h264_ctx->context->width = width; h264_ctx->context->height = height; //h264_ctx->context->dsp_mask = (FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE); #if LIBAVCODEC_VER_AT_LEAST(53,6) if (avcodec_open2(h264_ctx->context, h264_ctx->codec, NULL) < 0) #else if (avcodec_open(h264_ctx->context, h264_ctx->codec) < 0) #endif { fprintf(stderr, "V4L2_CORE: (H264 decoder) couldn't open codec\n"); avcodec_close(h264_ctx->context); free(h264_ctx->context); free(h264_ctx); h264_ctx = NULL; return E_NO_CODEC; } #if LIBAVCODEC_VER_AT_LEAST(55,28) h264_ctx->picture = av_frame_alloc(); av_frame_unref(h264_ctx->picture); #else h264_ctx->picture = avcodec_alloc_frame(); avcodec_get_frame_defaults(h264_ctx->picture); #endif h264_ctx->pic_size = avpicture_get_size(h264_ctx->context->pix_fmt, width, height); h264_ctx->width = width; h264_ctx->height = height; return E_OK; } /* * decode h264 frame * args: * out_buf - pointer to decoded data * in_buf - pointer to h264 data * size - in_buf size * * asserts: * h264_ctx is not null * in_buf is not null * out_buf is not null * * returns: decoded data size */ int h264_decode(uint8_t *out_buf, uint8_t *in_buf, int size) { /*asserts*/ assert(h264_ctx != NULL); assert(in_buf != NULL); assert(out_buf != NULL); AVPacket avpkt; av_init_packet(&avpkt); avpkt.size = size; avpkt.data = in_buf; int got_picture = 0; int len = avcodec_decode_video2(h264_ctx->context, h264_ctx->picture, &got_picture, &avpkt); if(len < 0) { fprintf(stderr, "V4L2_CORE: (H264 decoder) error while decoding frame\n"); return len; } if(got_picture) { avpicture_layout((AVPicture *) h264_ctx->picture, h264_ctx->context->pix_fmt, h264_ctx->width, h264_ctx->height, out_buf, h264_ctx->pic_size); return len; } else return 0; } /* * close h264 decoder context * args: * none * * asserts: * none * * returns: none */ void h264_close_decoder() { if(h264_ctx == NULL) return; avcodec_close(h264_ctx->context); free(h264_ctx->context); #if LIBAVCODEC_VER_AT_LEAST(55,28) av_frame_free(&h264_ctx->picture); #else #if LIBAVCODEC_VER_AT_LEAST(54,28) avcodec_free_frame(&h264_ctx->picture); #else av_freep(&h264_ctx->picture); #endif #endif free(h264_ctx); h264_ctx = NULL; } guvcview-2.0.2+debian/gview_v4l2core/uvc_h264.h000066400000000000000000000344221256377215300211620ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef UVC_H264_H #define UVC_H264_H #include "gviewv4l2core.h" #include "v4l2_core.h" #include "v4l2_xu_ctrls.h" /*H264 support type*/ #define H264_NONE (0) #define H264_FRAME (1) #define H264_MUXED (2) /* UVC H.264 control selectors */ #define UVCX_VIDEO_CONFIG_PROBE 0x01 #define UVCX_VIDEO_CONFIG_COMMIT 0x02 #define UVCX_RATE_CONTROL_MODE 0x03 #define UVCX_TEMPORAL_SCALE_MODE 0x04 #define UVCX_SPATIAL_SCALE_MODE 0x05 #define UVCX_SNR_SCALE_MODE 0x06 #define UVCX_LTR_BUFFER_SIZE_CONTROL 0x07 #define UVCX_LTR_PICTURE_CONTROL 0x08 #define UVCX_PICTURE_TYPE_CONTROL 0x09 #define UVCX_VERSION 0x0A #define UVCX_ENCODER_RESET 0x0B #define UVCX_FRAMERATE_CONFIG 0x0C #define UVCX_VIDEO_ADVANCE_CONFIG 0x0D #define UVCX_BITRATE_LAYERS 0x0E #define UVCX_QP_STEPS_LAYERS 0x0F /* bmHints defines */ #define BMHINTS_RESOLUTION 0x0001 #define BMHINTS_PROFILE 0x0002 #define BMHINTS_RATECONTROL 0x0004 #define BMHINTS_USAGE 0x0008 #define BMHINTS_SLICEMODE 0x0010 #define BMHINTS_SLICEUNITS 0x0020 #define BMHINTS_MVCVIEW 0x0040 #define BMHINTS_TEMPORAL 0x0080 #define BMHINTS_SNR 0x0100 #define BMHINTS_SPATIAL 0x0200 #define BMHINTS_SPATIAL_RATIO 0x0400 #define BMHINTS_FRAME_INTERVAL 0x0800 #define BMHINTS_LEAKY_BKT_SIZE 0x1000 #define BMHINTS_BITRATE 0x2000 #define BMHINTS_ENTROPY 0x4000 #define BMHINTS_IFRAMEPERIOD 0x8000 /* wSliceMode defines */ #define SLICEMODE_BITSPERSLICE 0x0001 #define SLICEMODE_MBSPERSLICE 0x0002 #define SLICEMODE_SLICEPERFRAME 0x0003 /*********************************************************************************************************************** * bUsageType defines * The bUsageType used in Probe/Commit structure. The UCCONFIG parameters are based on "UCConfig Modes v1.1". * bUsageType UCConfig Description * 4 0 Non-scalable single layer AVC bitstream with simulcast(number of simulcast streams>=1) * 5 1 SVC temporal scalability with hierarchical P with simulcast(number of simulcast streams>=1) * 6 2q SVC temporal scalability + Quality/SNR scalability with simulcast(number of simulcast streams>=1) * 7 2s SVC temporal scalability + spatial scalability with simulcast(number of simulcast streams>=1) * 8 3 Full SVC scalability (temporal scalability + SNR scalability + spatial scalability) * with simulcast(number of simulcast streams>=1) ************************************************************************************************************************/ #define USAGETYPE_REALTIME 0x01 #define USAGETYPE_BROADCAST 0x02 #define USAGETYPE_STORAGE 0x03 #define USAGETYPE_UCCONFIG_0 0x04 #define USAGETYPE_UCCONFIG_1 0x05 #define USAGETYPE_UCCONFIG_2Q 0x06 #define USAGETYPE_UCCONFIG_2S 0x07 #define USAGETYPE_UCCONFIG_3 0x08 /* bRateControlMode defines */ #define RATECONTROL_CBR 0x01 #define RATECONTROL_VBR 0x02 #define RATECONTROL_CONST_QP 0x03 #define RATECONTROL_FIXED_FRM_FLG 0x10 /* bStreamFormat defines */ #define STREAMFORMAT_ANNEXB 0x00 #define STREAMFORMAT_NAL 0x01 /* bEntropyCABAC defines */ #define ENTROPY_CAVLC 0x00 #define ENTROPY_CABAC 0x01 /* bTimingstamp defines */ #define TIMESTAMP_SEI_DISABLE 0x00 #define TIMESTAMP_SEI_ENABLE 0x01 /* bPreviewFlipped defines */ #define PREFLIPPED_DISABLE 0x00 #define PREFLIPPED_HORIZONTAL 0x01 /* wPictureType defines */ #define PICTURE_TYPE_IFRAME 0x0000 //Generate an IFRAME #define PICTURE_TYPE_IDR 0x0001 //Generate an IDR #define PICTURE_TYPE_IDR_FULL 0x0002 //Generate an IDR frame with new SPS and PPS /* bStreamMuxOption defines */ #define STREAMMUX_H264 (1 << 0) | (1 << 1) #define STREAMMUX_YUY2 (1 << 0) | (1 << 2) #define STREAMMUX_YUYV (1 << 0) | (1 << 2) #define STREAMMUX_NV12 (1 << 0) | (1 << 3) /* wLayerID Macro */ /* wLayerID |------------+------------+------------+----------------+------------| | Reserved | StreamID | QualityID | DependencyID | TemporalID | | (3 bits) | (3 bits) | (3 bits) | (4 bits) | (3 bits) | |------------+------------+------------+----------------+------------| |15 13|12 10|9 7|6 3|2 0| |------------+------------+------------+----------------+------------| */ #define xLayerID(stream_id, quality_id, dependency_id, temporal_id) ((((stream_id)&7)<<10)|(((quality_id)&7)<<7)|(((dependency_id)&15)<<3)|((temporal_id)&7)) /* id extraction from wLayerID */ #define xStream_id(layer_id) (((layer_id)>>10)&7) #define xQuality_id(layer_id) (((layer_id)>>7)&7) #define xDependency_id(layer_id) (((layer_id)>>3)&15) #define xTemporal_id(layer_id) ((layer_id)&7) /* h264 probe commit struct (defined in gviewv4l2core.h) */ /* rate control */ typedef struct _uvcx_rate_control_mode_t { uint16_t wLayerID; uint8_t bRateControlMode; } __attribute__((__packed__)) uvcx_rate_control_mode_t; /* temporal scale */ typedef struct _uvcx_temporal_scale_mode_t { uint16_t wLayerID; uint8_t bTemporalScaleMode; } __attribute__((__packed__)) uvcx_temporal_scale_mode_t; /* spatial scale mode */ typedef struct _uvcx_spatial_scale_mode_t { uint16_t wLayerID; uint8_t bSpatialScaleMode; } __attribute__((__packed__)) uvcx_spatial_scale_mode_t; /* snr scale mode */ typedef struct _uvcx_snr_scale_mode_t { uint16_t wLayerID; uint8_t bSNRScaleMode; uint8_t bMGSSublayerMode; } __attribute__((__packed__)) uvcx_snr_scale_mode_t; /* buffer size control*/ typedef struct _uvcx_ltr_buffer_size_control_t { uint16_t wLayerID; uint8_t bLTRBufferSize; uint8_t bLTREncoderControl; } __attribute__((__packed__)) uvcx_ltr_buffer_size_control_t; /* ltr picture control */ typedef struct _uvcx_ltr_picture_control { uint16_t wLayerID; uint8_t bPutAtPositionInLTRBuffer; uint8_t bEncodeUsingLTR; } __attribute__((__packed__)) uvcx_ltr_picture_control; /* picture type control */ typedef struct _uvcx_picture_type_control_t { uint16_t wLayerID; uint16_t wPicType; } __attribute__((__packed__)) uvcx_picture_type_control_t; /* version */ typedef struct _uvcx_version_t { uint16_t wVersion; } __attribute__((__packed__)) uvcx_version_t; /* encoder reset */ typedef struct _uvcx_encoder_reset { uint16_t wLayerID; } __attribute__((__packed__)) uvcx_encoder_reset; /* frame rate */ typedef struct _uvcx_framerate_config_t { uint16_t wLayerID; uint32_t dwFrameInterval; } __attribute__((__packed__)) uvcx_framerate_config_t; /* advance config */ typedef struct _uvcx_video_advance_config_t { uint16_t wLayerID; uint32_t dwMb_max; uint8_t blevel_idc; uint8_t bReserved; } __attribute__((__packed__)) uvcx_video_advance_config_t; /* bit rate */ typedef struct _uvcx_bitrate_layers_t { uint16_t wLayerID; uint32_t dwPeakBitrate; uint32_t dwAverageBitrate; } __attribute__((__packed__)) uvcx_bitrate_layers_t; /* qp steps */ typedef struct _uvcx_qp_steps_layers_t { uint16_t wLayerID; uint8_t bFrameType; uint8_t bMinQp; uint8_t bMaxQp; } __attribute__((__packed__)) uvcx_qp_steps_layers_t; /* * get h264 support type * args: * none * * asserts: * none * * returns: support type (H264_NONE; H264_MUXED; H264_FRAME) */ int h264_get_support(); /* * gets the uvc h264 xu control unit id, if any * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->list_devices is not null * * returns: unit id or 0 if none * (also sets vd->h264_unit_id) */ uint8_t get_uvc_h624_unit_id (v4l2_dev_t *vd); /* * check for uvc h264 support by querying UVCX_VERSION * although geting a unit id > 0 from xu_get_unit_id * should be enought * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 1 if support available or 0 otherwise */ int check_h264_support(v4l2_dev_t *vd); /* * adds h264 to the format list, if supported by device * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: void */ void add_h264_format(v4l2_dev_t *vd); /* * sets h264 muxed format (must not be called while streaming) * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void set_h264_muxed_format(v4l2_dev_t *vd); /* * check if h264 decoder is available from libavcodec * args: * none * * asserts: * none * * returns: TRUE (1) * FALSE(0) */ //uint8_t h264_has_decoder(); /* * request a frame of type wPictureType to the h264 encoder * args: * vd - pointer to video device data * type - frame type * * asserts: * vd is not null * * returns: error code */ int request_h264_frame_type(v4l2_dev_t *vd, uint16_t type); /* * request a IDR frame from the H264 encoder * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: none */ void h264_request_idr(v4l2_dev_t *vd); /* * resets the h264 encoder * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: 0 on success or error code on fail */ int h264_reset_encoder(v4l2_dev_t *vd); /* * get the video rate control mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: video rate control mode (FIXME: 0xff on error) */ uint8_t h264_get_video_rate_control_mode(v4l2_dev_t *vd, uint8_t query); /* * set the video rate control mode * args: * vd - pointer to video device data * mode - rate mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_video_rate_control_mode(v4l2_dev_t *vd, uint8_t mode); /* * get the temporal scale mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t h264_get_temporal_scale_mode(v4l2_dev_t *vd, uint8_t query); /* * set the temporal scale mode * args: * vd - pointer to video device data * mode - temporal scale mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_temporal_scale_mode(v4l2_dev_t *vd, uint8_t mode); /* * get the spatial scale mode * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t h264_get_spatial_scale_mode(v4l2_dev_t *vd, uint8_t query); /* * set the spatial scale mode * args: * vd - pointer to video device data * mode - spatial scale mode * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_spatial_scale_mode(v4l2_dev_t *vd, uint8_t mode); /* * query the frame rate config * args: * vd - pointer to video device data * query - query type * * asserts: * vd is not null * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t h264_query_frame_rate_config(v4l2_dev_t *vd, uint8_t query); /* * get the frame rate config * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t h264_get_frame_rate_config(v4l2_dev_t *vd); /* * set the frame rate config * args: * vd - pointer to video device data * framerate - framerate * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_set_frame_rate_config(v4l2_dev_t *vd, uint32_t framerate); /* * updates the h264_probe_commit_req field * args: * vd - pointer to video device data * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) * config_probe_cur - pointer to uvcx_video_config_probe_commit_t: * if null vd->h264_config_probe_req will be used * * asserts: * vd is not null * * returns: error code ( 0 -OK) */ int h264_probe_config_probe_req( v4l2_dev_t *vd, uint8_t query, uvcx_video_config_probe_commit_t *config_probe_req); /* * init h264 decoder context * args: * width - image width * height - image height * * asserts: * none * * returns: error code (0 - E_OK) */ int h264_init_decoder(int width, int height); /* * decode h264 frame * args: * out_buf - pointer to decoded data * in_buf - pointer to h264 data * size - in_buf size * * asserts: * h264_ctx is not null * in_buf is not null * out_buf is not null * * returns: decoded data size */ int h264_decode(uint8_t *out_buf, uint8_t *in_buf, int size); /* * close h264 decoder context * args: * none * * asserts: * none * * returns: none */ void h264_close_decoder(); #endif /*UVC_H264_H*/ guvcview-2.0.2+debian/gview_v4l2core/v4l2_controls.c000066400000000000000000001311721256377215300223270ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gviewv4l2core.h" #include "v4l2_controls.h" #include "v4l2_xu_ctrls.h" #include "../config.h" #ifndef V4L2_CTRL_ID2CLASS #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) #endif extern int verbosity; // GUID for logitech peripheral (pan/tilt) V3 extension unit: {FFE52D21-8030-4E2C-82d9-f587d00540bd} #define GUID_LOGITECH_PERIPHERAL_XU {0x21, 0x2D, 0xE5, 0xFF, 0x30, 0x80, 0x2C, 0x4E, 0x82, 0xD9, 0xF5, 0x87, 0xD0, 0x05, 0x40, 0xBD} /* * needed only for language files (not used) */ /* V4L2 control strings */ #define CSTR_USER_CLASS N_("User Controls") #define CSTR_BRIGHT N_("Brightness") #define CSTR_CONTRAST N_("Contrast") #define CSTR_HUE N_("Hue") #define CSTR_SATURAT N_("Saturation") #define CSTR_SHARP N_("Sharpness") #define CSTR_GAMMA N_("Gamma") #define CSTR_BLCOMP N_("Backlight Compensation") #define CSTR_PLFREQ N_("Power Line Frequency") #define CSTR_HUEAUTO N_("Hue, Automatic") #define CSTR_FOCUSAUTO N_("Focus, Auto") #define CSTR_EXPMENU1 N_("Manual Mode") #define CSTR_EXPMENU2 N_("Auto Mode") #define CSTR_EXPMENU3 N_("Shutter Priority Mode") #define CSTR_EXPMENU4 N_("Aperture Priority Mode") #define CSTR_BLACK_LEVEL N_("Black Level") #define CSTR_AUTO_WB N_("White Balance, Automatic") #define CSTR_DO_WB N_("Do White Balance") #define CSTR_RB N_("Red Balance") #define CSTR_BB N_("Blue Balance") #define CSTR_EXP N_("Exposure") #define CSTR_AUTOGAIN N_("Gain, Automatic") #define CSTR_GAIN N_("Gain") #define CSTR_HFLIP N_("Horizontal Flip") #define CSTR_VFLIP N_("Vertical Flip") #define CSTR_HCENTER N_("Horizontal Center") #define CSTR_VCENTER N_("Vertical Center") #define CSTR_CHR_AGC N_("Chroma AGC") #define CSTR_CLR_KILL N_("Color Killer") #define CSTR_COLORFX N_("Color Effects") /* CAMERA CLASS control strings */ #define CSTR_CAMERA_CLASS N_("Camera Controls") #define CSTR_EXPAUTO N_("Auto Exposure") #define CSTR_EXPABS N_("Exposure Time, Absolute") #define CSTR_EXPAUTOPRI N_("Exposure, Dynamic Framerate") #define CSTR_PAN_REL N_("Pan, Relative") #define CSTR_TILT_REL N_("Tilt, Relative") #define CSTR_PAN_RESET N_("Pan, Reset") #define CSTR_TILT_RESET N_("Tilt, Reset") #define CSTR_PAN_ABS N_("Pan, Absolute") #define CSTR_TILT_ABS N_"Tilt, Absolute") #define CSTR_FOCUS_ABS N_("Focus, Absolute") #define CSTR_FOCUS_REL N_("Focus, Relative") #define CSTR_FOCUS_AUTO N_("Focus, Automatic") #define CSTR_ZOOM_ABS N_("Zoom, Absolute") #define CSTR_ZOOM_REL N_("Zoom, Relative") #define CSTR_ZOOM_CONT N_("Zoom, Continuous") #define CSTR_PRIV N_("Privacy") /* UVC specific control strings */ #define CSTR_EXPAUTO_UVC N_("Exposure, Auto") #define CSTR_EXPAUTOPRI_UVC N_("Exposure, Auto Priority") #define CSTR_EXPABS_UVC N_("Exposure (Absolute)") #define CSTR_WBTAUTO_UVC N_("White Balance Temperature, Auto") #define CSTR_WBT_UVC N_("White Balance Temperature") #define CSTR_WBCAUTO_UVC N_("White Balance Component, Auto") #define CSTR_WBCB_UVC N_("White Balance Blue Component") #define CSTR_WBCR_UVC N_("White Balance Red Component") /* libwebcam specific control strings */ #define CSTR_FOCUS_LIBWC N_("Focus") #define CSTR_FOCUSABS_LIBWC N_("Focus (Absolute)") /* * don't use xioctl for control query when using V4L2_CTRL_FLAG_NEXT_CTRL * args: * vd - pointer to video device data * current_ctrl - current control id * ctrl - pointer to v4l2_queryctrl data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * ctrl is not null * * returns: error code */ static int query_ioctl(v4l2_dev_t *vd, int current_ctrl, struct v4l2_queryctrl* ctrl) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(ctrl != NULL); int ret = 0; int tries = 4; do { if(ret) ctrl->id = current_ctrl | V4L2_CTRL_FLAG_NEXT_CTRL; ret = v4l2_ioctl(vd->fd, VIDIOC_QUERYCTRL, ctrl); } while (ret && tries-- && ((errno == EIO || errno == EPIPE || errno == ETIMEDOUT))); return(ret); } /* * output control data * args: * control - pointer to control data * i - control index (from control list) * * asserts: * none * * returns: void */ static void print_control(v4l2_ctrl_t *control, int i) { if(control == NULL) { printf("V4L2_CORE: null control at index %i\n", i); return; } int j=0; switch (control->control.type) { case V4L2_CTRL_TYPE_INTEGER: printf("control[%d]:(int) 0x%x '%s'\n",i ,control->control.id, control->name); printf("\tmin:%d max:%d step:%d def:%d curr:%d\n", control->control.minimum, control->control.maximum, control->control.step, control->control.default_value, control->value); break; #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: printf("control[%d]:(int64) 0x%x '%s'\n",i ,control->control.id, control->name); printf ("\tcurr:%" PRIu64 "\n", control->value64); break; #endif #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: printf("control[%d]:(str) 0x%x '%s'\n",i ,control->control.id, control->name); printf ("\tmin:%d max:%d step:%d\n", control->control.minimum, control->control.maximum, control->control.step); break; #endif case V4L2_CTRL_TYPE_BOOLEAN: printf("control[%d]:(bool) 0x%x '%s'\n",i ,control->control.id, control->name); printf ("\tdef:%d curr:%d\n", control->control.default_value, control->value); break; case V4L2_CTRL_TYPE_MENU: printf("control[%d]:(menu) 0x%x '%s'\n",i ,control->control.id, control->name); printf("\tmin:%d max:%d def:%d curr:%d\n", control->control.minimum, control->control.maximum, control->control.default_value, control->value); for (j = 0; control->menu[j].index <= control->control.maximum; j++) printf("\tmenu[%d]: [%d] -> '%s'\n", j, control->menu[j].index, control->menu_entry[j]); break; #ifdef V4L2_CTRL_TYPE_INTEGER_MENU case V4L2_CTRL_TYPE_INTEGER_MENU: printf("control[%d]:(intmenu) 0x%x '%s'\n",i ,control->control.id, control->name); printf("\tmin:%d max:%d def:%d curr:%d\n", control->control.minimum, control->control.maximum, control->control.default_value, control->value); for (j = 0; control->menu[j].index <= control->control.maximum; j++) printf("\tmenu[%d]: [%d] -> %" PRId64 " (0x%" PRIx64 ")", j, control->menu[j].index, (int64_t) control->menu[j].value, (int64_t) control->menu[j].value); break; #endif case V4L2_CTRL_TYPE_BUTTON: printf("control[%d]:(button) 0x%x '%s'\n",i ,control->control.id, control->name); break; #ifdef V4L2_CTRL_TYPE_BITMASK case V4L2_CTRL_TYPE_BITMASK: printf("control[%d]:(bitmask) 0x%x '%s'\n",i ,control->control.id, control->name); printf("\tmax:%d def:%d curr:%d\n", control->control.maximum, control->control.default_value, control->value); #endif default: printf("control[%d]:(unknown - 0x%x) 0x%x '%s'\n",i ,control->control.type, control->control.id, control->control.name); break; } } /* * prints control list to stdout * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ static void print_control_list(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); if(vd->list_device_controls == NULL) { printf("V4L2_CORE: WARNING empty control list\n"); return; } int i = 0; v4l2_ctrl_t *current = vd->list_device_controls; for(; current != NULL; current = current->next) { print_control(current, i); i++; } } /* * gets the logitech peripheral (pan/tilt) V3 xu control unit id, if any * args: * vd - pointer to video device data * * asserts: * vd is not null * device_list->list_devices is not null * * returns: unit id or 0 if none */ static uint8_t get_logitech_peripheral_unit_id (v4l2_dev_t *vd) { if(verbosity > 1) printf("V4L2_CORE: checking for logitech peripheral unit id\n"); uint8_t guid[16] = GUID_LOGITECH_PERIPHERAL_XU; return get_guid_unit_id (vd, guid); } /* * add control to control list * args: * vd - pointer to video device data * queryctrl - pointer to v4l2_queryctrl data * current - pointer to pointer of current control from control list * first - pointer to pointer of first control from control list * * asserts: * vd is not null * vd->fd is valid * queryctrl is not null * * returns: pointer to newly added control */ static v4l2_ctrl_t *add_control(v4l2_dev_t *vd, struct v4l2_queryctrl* queryctrl, v4l2_ctrl_t **current, v4l2_ctrl_t **first) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(queryctrl != NULL); int menu_entries = 0; v4l2_ctrl_t *control = NULL; struct v4l2_querymenu* menu = NULL; //menu list struct v4l2_querymenu* old_menu = menu; //temp menu list pointer if (queryctrl->flags & V4L2_CTRL_FLAG_DISABLED) { printf("V4L2_CORE: Control 0x%08x is disabled: remove it from control list\n", queryctrl->id); return NULL; } //check menu items if needed if(queryctrl->type == V4L2_CTRL_TYPE_MENU #ifdef V4L2_CTRL_TYPE_INTEGER_MENU || queryctrl->type == V4L2_CTRL_TYPE_INTEGER_MENU #endif ) { int i = 0; struct v4l2_querymenu querymenu={0}; for (querymenu.index = queryctrl->minimum; querymenu.index <= queryctrl->maximum; querymenu.index++) { querymenu.id = queryctrl->id; if (xioctl (vd->fd, VIDIOC_QUERYMENU, &querymenu) < 0) continue; old_menu = menu; if(!menu) menu = calloc(i+1, sizeof(struct v4l2_querymenu)); else menu = realloc(menu, (i+1) * sizeof(struct v4l2_querymenu)); if(menu == NULL) { /*since we exit on failure there was no need to free any previous */ /* menu allocation (realloc), but silence cppcheck anyway */ if(old_menu) free(old_menu); fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); exit(-1); } memcpy(&(menu[i]), &querymenu, sizeof(struct v4l2_querymenu)); i++; } old_menu = menu; /*last entry (NULL name)*/ if(!menu) menu = calloc(i+1, sizeof(struct v4l2_querymenu)); else menu = realloc(menu, (i+1) * sizeof(struct v4l2_querymenu)); if(menu == NULL) { /*since we exit on failure there was no need to free any previous */ /* menu allocation (realloc), but silence cppcheck anyway */ if(old_menu) free(old_menu); fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); exit(-1); } menu[i].id = querymenu.id; menu[i].index = queryctrl->maximum+1; if(queryctrl->type == V4L2_CTRL_TYPE_MENU) menu[i].name[0] = 0; menu_entries = i; } /*check for focus control to enable software autofocus*/ if(queryctrl->id == V4L2_CID_FOCUS_LOGITECH || queryctrl->id == V4L2_CID_FOCUS_ABSOLUTE) vd->has_focus_control_id = queryctrl->id; /*check for pan/tilt control*/ else if(queryctrl->id == V4L2_CID_TILT_RELATIVE || queryctrl->id == V4L2_CID_PAN_RELATIVE) { /*get unit id for logitech pan_tilt V3 if any*/ vd->has_pantilt_control_id = 1; vd->pantilt_unit_id = get_logitech_peripheral_unit_id(vd); } // Add the control to the linked list control = calloc (1, sizeof(v4l2_ctrl_t)); if(control == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); exit(-1); } memcpy(&(control->control), queryctrl, sizeof(struct v4l2_queryctrl)); control->class = V4L2_CTRL_ID2CLASS(control->control.id); control->name = strdup(dgettext(GETTEXT_PACKAGE_V4L2CORE, control->control.name)); //add the menu adress (NULL if not a menu) control->menu = menu; if(control->menu != NULL && control->control.type == V4L2_CTRL_TYPE_MENU) { int i = 0; control->menu_entry = calloc(menu_entries, sizeof(char *)); if(control->menu_entry == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); exit(-1); } for(i = 0; i< menu_entries; i++) control->menu_entry[i] = strdup(dgettext(GETTEXT_PACKAGE_V4L2CORE, control->menu[i].name)); control->menu_entries = menu_entries; } else { control->menu_entries = 0; control->menu_entry = NULL; } #ifdef V4L2_CTRL_TYPE_STRING //allocate a string with max size if needed if(control->control.type == V4L2_CTRL_TYPE_STRING) { control->string = (char *) calloc (control->control.maximum + 1, sizeof(char)); if(control->string == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (add_control): %s\n", strerror(errno)); exit(-1); } } else #endif control->string = NULL; if(*first != NULL) { (*current)->next = control; *current = control; } else { *first = control; *current = *first; } return control; } /* * enumerate device (read/write) controls * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_device_controls is null * * returns: error code */ int enumerate_v4l2_control(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(vd->list_device_controls == NULL); int ret=0; v4l2_ctrl_t *current = NULL; int n = 0; struct v4l2_queryctrl queryctrl={0}; int currentctrl = 0; queryctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL; /*try the next_flag method first*/ while ((ret=query_ioctl(vd, currentctrl, &queryctrl)) == 0) { if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) n++; currentctrl = queryctrl.id; queryctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL; } if (queryctrl.id != V4L2_CTRL_FLAG_NEXT_CTRL) { vd->num_controls = n; if(verbosity > 0) print_control_list(vd); return E_OK; } if(ret) fprintf(stderr, "V4L2_CORE: Control 0x%08x failed to query with error %i\n", queryctrl.id, ret); printf("buggy V4L2_CTRL_FLAG_NEXT_CTRL flag implementation (workaround enabled)\n"); /* * next_flag method failed, loop through the ids: * * USER CLASS Controls */ for (currentctrl = V4L2_CID_USER_BASE; currentctrl < V4L2_CID_LASTP1; currentctrl++) { queryctrl.id = currentctrl; if (xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0) { if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) n++; } } /* CAMERA CLASS Controls */ for (currentctrl = V4L2_CID_CAMERA_CLASS_BASE; currentctrl < V4L2_CID_CAMERA_CLASS_BASE+32; currentctrl++) { queryctrl.id = currentctrl; if (xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0) { if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) n++; } } /* PRIVATE controls (deprecated) */ for (queryctrl.id = V4L2_CID_PRIVATE_BASE; xioctl(vd->fd, VIDIOC_QUERYCTRL, &queryctrl) == 0; queryctrl.id++) { if(add_control(vd, &queryctrl, ¤t, &(vd->list_device_controls)) != NULL) n++; } vd->num_controls = n; if(verbosity > 0) print_control_list(vd); return E_OK; } /* * update the control flags - called when setting controls * FIXME: use control events * * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * * returns: error code */ static void update_ctrl_flags(v4l2_dev_t *vd, int id) { /*asserts*/ assert(vd != NULL); switch (id) { case V4L2_CID_EXPOSURE_AUTO: { v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id(id); if(ctrl_this == NULL) break; switch (ctrl_this->value) { case V4L2_EXPOSURE_AUTO: { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_RELATIVE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_EXPOSURE_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; } break; case V4L2_EXPOSURE_APERTURE_PRIORITY: { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_EXPOSURE_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_RELATIVE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } break; case V4L2_EXPOSURE_SHUTTER_PRIORITY: { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_RELATIVE ); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_EXPOSURE_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } break; default: { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_EXPOSURE_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_ABSOLUTE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_IRIS_RELATIVE ); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } break; } } break; case V4L2_CID_FOCUS_AUTO: { v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id( id ); if(ctrl_this == NULL) break; if(ctrl_this->value > 0) { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_FOCUS_ABSOLUTE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_FOCUS_RELATIVE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; } else { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_FOCUS_ABSOLUTE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_FOCUS_RELATIVE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } } break; case V4L2_CID_HUE_AUTO: { v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id( id ); if(ctrl_this == NULL) break; if(ctrl_this->value > 0) { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_HUE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; } else { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_HUE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } } break; case V4L2_CID_AUTO_WHITE_BALANCE: { v4l2_ctrl_t *ctrl_this = v4l2core_get_control_by_id( id ); if(ctrl_this == NULL) break; if(ctrl_this->value > 0) { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_WHITE_BALANCE_TEMPERATURE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_BLUE_BALANCE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; ctrl_that = v4l2core_get_control_by_id( V4L2_CID_RED_BALANCE); if (ctrl_that) ctrl_that->control.flags |= V4L2_CTRL_FLAG_GRABBED; } else { v4l2_ctrl_t *ctrl_that = v4l2core_get_control_by_id( V4L2_CID_WHITE_BALANCE_TEMPERATURE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_BLUE_BALANCE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); ctrl_that = v4l2core_get_control_by_id( V4L2_CID_RED_BALANCE); if (ctrl_that) ctrl_that->control.flags &= !(V4L2_CTRL_FLAG_GRABBED); } } break; } } /* * update flags of entire control list * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ static void update_ctrl_list_flags(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); v4l2_ctrl_t *current = vd->list_device_controls; for(; current != NULL; current = current->next) update_ctrl_flags(vd, current->control.id); } /* * Disables special auto-controls with higher IDs than * their absolute/relative counterparts * this is needed before restoring controls state * * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * * returns: void */ void disable_special_auto (v4l2_dev_t *vd, int id) { /*asserts*/ assert(vd != NULL); v4l2_ctrl_t *current = v4l2core_get_control_by_id( id); if(current && ((id == V4L2_CID_FOCUS_AUTO) || (id == V4L2_CID_HUE_AUTO))) { current->value = 0; v4l2core_set_control_value_by_id( id); } } /* * goes trough the control list and updates/retrieves current values * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid * * returns: void */ void get_v4l2_control_values (v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); assert(vd->fd > 0); if(vd->list_device_controls == NULL) { printf("V4L2_CORE: (get control values) empty control list\n"); return; } int ret = 0; struct v4l2_ext_control clist[vd->num_controls]; v4l2_ctrl_t *current = vd->list_device_controls; int count = 0; int i = 0; for(; current != NULL; current = current->next) { if(current->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) continue; clist[count].id = current->control.id; #ifdef V4L2_CTRL_TYPE_STRING clist[count].size = 0; if(current->control.type == V4L2_CTRL_TYPE_STRING) { clist[count].size = current->control.maximum; clist[count].string = (char *) calloc(clist[count].size + 1, sizeof(char)); if(clist[count].string == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (get_v4l2_control_values): %s\n", strerror(errno)); exit(-1); } } #endif count++; if((current->next == NULL) || (current->next->class != current->class)) { struct v4l2_ext_controls ctrls = {0}; ctrls.ctrl_class = current->class; ctrls.count = count; ctrls.controls = clist; ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); if(ret) { fprintf(stderr, "V4L2_CORE: (VIDIOC_G_EXT_CTRLS) failed\n"); struct v4l2_control ctrl; /*get the controls one by one*/ if( current->class == V4L2_CTRL_CLASS_USER #ifdef V4L2_CTRL_TYPE_STRING && current->control.type != V4L2_CTRL_TYPE_STRING #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 && current->control.type != V4L2_CTRL_TYPE_INTEGER64 #endif ) { fprintf(stderr, "V4L2_CORE: using VIDIOC_G_CTRL for user class controls\n"); for(i=0; i < count; i++) { ctrl.id = clist[i].id; ctrl.value = 0; ret = xioctl(vd->fd, VIDIOC_G_CTRL, &ctrl); if(ret) continue; clist[i].value = ctrl.value; } } else { fprintf(stderr, "V4L2_CORE: using VIDIOC_G_EXT_CTRLS on single controls for class: 0x%08x\n", current->class); for(i=0;i < count; i++) { ctrls.count = 1; ctrls.controls = &clist[i]; ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); if(ret) fprintf(stderr, "V4L2_CORE: control id: 0x%08x failed to get (error %i)\n", clist[i].id, ret); } } } //fill in the values on the control list for(i=0; icontrol.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: { /* * string gets set on VIDIOC_G_EXT_CTRLS * add the maximum size to value */ unsigned len = clist[i].size; unsigned max_len = ctrl->control.maximum; strncpy(ctrl->string, clist[i].string, max_len); if(len > max_len) { ctrl->string[max_len] = 0; //Null terminated fprintf(stderr, "V4L2_CORE: control (0x%08x) returned string size of %d when max is %d\n", ctrl->control.id, len, max_len); } /*clean up*/ free(clist[i].string); clist[i].string = NULL; break; } #endif case V4L2_CTRL_TYPE_INTEGER64: ctrl->value64 = clist[i].value64; break; default: ctrl->value = clist[i].value; //printf("V4L2_CORE: control %i [0x%08x] = %i\n", // i, clist[i].id, clist[i].value); break; } } count = 0; } } update_ctrl_list_flags(vd); } /* * return the control associated to id from device list * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * * returns: pointer to v4l2_control if succeded or null otherwise */ v4l2_ctrl_t *get_control_by_id(v4l2_dev_t *vd, int id) { /*asserts*/ assert(vd != NULL); v4l2_ctrl_t *current = vd->list_device_controls; for(; current != NULL; current = current->next) { if(current == NULL) break; if(current->control.id == id) return (current); } return(NULL); } /* * updates the value for control id from the device * also updates control flags * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * vd->fd is valid * * returns: ioctl result */ int get_control_value_by_id (v4l2_dev_t *vd, int id) { /*asserts*/ assert(vd != NULL); assert(vd->fd > 0); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id ); int ret = 0; if(!control) return (-1); if(control->control.flags & V4L2_CTRL_FLAG_WRITE_ONLY) return (-1); if( control->class == V4L2_CTRL_CLASS_USER #ifdef V4L2_CTRL_TYPE_STRING && control->control.type != V4L2_CTRL_TYPE_STRING #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 && control->control.type != V4L2_CTRL_TYPE_INTEGER64 #endif ) { struct v4l2_control ctrl; ctrl.id = control->control.id; ctrl.value = 0; ret = xioctl(vd->fd, VIDIOC_G_CTRL, &ctrl); if(ret) fprintf(stderr, "V4L2_CORE: control id: 0x%08x failed to get value (error %i)\n", ctrl.id, ret); else control->value = ctrl.value; } else { struct v4l2_ext_controls ctrls = {0}; struct v4l2_ext_control ctrl = {0}; ctrl.id = control->control.id; #ifdef V4L2_CTRL_TYPE_STRING ctrl.size = 0; if(control->control.type == V4L2_CTRL_TYPE_STRING) { ctrl.size = control->control.maximum; ctrl.string = (char *) calloc(ctrl.size + 1, sizeof(char)); if(ctrl.string == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_get_control_value_by_id): %s\n", strerror(errno)); exit(-1); } } #endif ctrls.ctrl_class = control->class; ctrls.count = 1; ctrls.controls = &ctrl; ret = xioctl(vd->fd, VIDIOC_G_EXT_CTRLS, &ctrls); if(ret) printf("control id: 0x%08x failed to get value (error %i)\n", ctrl.id, ret); else { switch(control->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: { unsigned len = ctrl.size; unsigned max_len = control->control.maximum; strncpy(control->string, ctrl.string, max_len); if(len > max_len) { control->value = max_len; control->string[max_len] = 0; //Null terminated fprintf(stderr, "V4L2_CORE: control (0x%08x) returned string size of %d when max is %d\n", control->control.id, len, max_len); } //clean up free(ctrl.string); ctrl.string = NULL; break; } #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: control->value64 = ctrl.value64; break; #endif default: control->value = ctrl.value; //printf("V4L2_CORE: control %i [0x%08x] = %i\n", // i, clist[i].id, clist[i].value); break; } } } update_ctrl_flags(vd, id); return (ret); } /* * goes trough the control list and sets values in device * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid * * returns: void */ void set_v4l2_control_values (v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); assert(vd->fd > 0); if(vd->list_device_controls == NULL) { printf("V4L2_CORE: (set control values) empty control list\n"); return; } int ret = 0; struct v4l2_ext_control clist[vd->num_controls]; v4l2_ctrl_t *current = vd->list_device_controls; int count = 0; int i = 0; if(verbosity > 0) printf("V4L2_CORE: setting control values\n"); for(; current != NULL; current = current->next) { if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) continue; clist[count].id = current->control.id; switch (current->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: { unsigned len = strlen(current->string); unsigned max_len = current->control.maximum; if(len > max_len) { clist[count].size = max_len; clist[count].string = (char *) calloc(max_len, sizeof(char)); if(clist[count].string == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (set_v4l2_control_values): %s\n", strerror(errno)); exit(-1); } clist[count].string = strncpy(clist[count].string, current->string, max_len); clist[count].string[max_len - 1] = '/0'; /*NULL terminated*/ fprintf(stderr, "V4L2_CORE: control (0x%08x) trying to set string size of %d when max is %d (clip)\n", current->control.id, len, max_len); } else { clist[count].size = len; clist[count].string = (char *) strdup(current->string); } break; } #endif case V4L2_CTRL_TYPE_INTEGER64: clist[count].value64 = current->value64; break; default: if(verbosity > 0) printf("\tcontrol[%i] = %i\n", count, current->value); clist[count].value = current->value; break; } count++; if((current->next == NULL) || (current->next->class != current->class)) { struct v4l2_ext_controls ctrls = {0}; ctrls.ctrl_class = current->class; ctrls.count = count; ctrls.controls = clist; ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); if(ret) { fprintf(stderr, "V4L2_CORE: VIDIOC_S_EXT_CTRLS for multiple controls failed (error %i)\n", ret); struct v4l2_control ctrl; /*set the controls one by one*/ if( current->class == V4L2_CTRL_CLASS_USER #ifdef V4L2_CTRL_TYPE_STRING && current->control.type != V4L2_CTRL_TYPE_STRING #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 && current->control.type != V4L2_CTRL_TYPE_INTEGER64 #endif ) { fprintf(stderr, "V4L2_CORE: using VIDIOC_S_CTRL for user class controls\n"); for(i=0;i < count; i++) { ctrl.id = clist[i].id; ctrl.value = clist[i].value; ret = xioctl(vd->fd, VIDIOC_S_CTRL, &ctrl); if(ret) { v4l2_ctrl_t *ctrl = v4l2core_get_control_by_id(clist[i].id); if(ctrl) fprintf(stderr, "V4L2_CORE: control(0x%08x) \"%s\" failed to set (error %i)\n", clist[i].id, ctrl->control.name, ret); else fprintf(stderr, "V4L2_CORE: control(0x%08x) failed to set (error %i)\n", clist[i].id, ret); } } } else { fprintf(stderr, "V4L2_CORE: using VIDIOC_S_EXT_CTRLS on single controls for class: 0x%08x\n", current->class); for(i=0;i < count; i++) { ctrls.count = 1; ctrls.controls = &clist[i]; ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); v4l2_ctrl_t *ctrl = v4l2core_get_control_by_id(clist[i].id); if(ret) { if(ctrl) fprintf(stderr, "V4L2_CORE: control(0x%08x) \"%s\" failed to set (error %i)\n", clist[i].id, ctrl->control.name, ret); else fprintf(stderr, "V4L2_CORE: control(0x%08x) failed to set (error %i)\n", clist[i].id, ret); } #ifdef V4L2_CTRL_TYPE_STRING if(ctrl && ctrl->control.type == V4L2_CTRL_TYPE_STRING) { free(clist[i].string); //free allocated string clist[i].string = NULL; } #endif } } } count = 0; } } } /* * goes trough the control list and sets values in device to default * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void set_control_defaults(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); if(vd->list_device_controls == NULL) { printf("V4L2_CORE: (set control defaults) empty control list\n"); return; } v4l2_ctrl_t *current = vd->list_device_controls; v4l2_ctrl_t *next = current->next; if(verbosity > 0) printf("V4L2_CORE: loading defaults\n"); int i = 0; for(; current != NULL; current = current->next, ++i) { if(current->control.flags & V4L2_CTRL_FLAG_READ_ONLY) continue; switch (current->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: /* do string controls have a default value?*/ break; #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: /* do int64 controls have a default value?*/ break; #endif default: /*if its one of the special auto controls disable it first*/ disable_special_auto (vd, current->control.id); if(verbosity > 1) printf("\tdefault[%i] = %i\n", i, current->control.default_value); current->value = current->control.default_value; break; } } set_v4l2_control_values(vd); get_v4l2_control_values(vd); } /* * sets the value of control id in device * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * vd->fd is valid * * returns: ioctl result */ int set_control_value_by_id(v4l2_dev_t *vd, int id) { /*asserts*/ assert(vd != NULL); assert(vd->fd > 0); v4l2_ctrl_t *control = v4l2core_get_control_by_id(id); int ret = 0; if(!control) return (-1); if(control->control.flags & V4L2_CTRL_FLAG_READ_ONLY) return (-1); if((id == V4L2_CID_PAN_RELATIVE || id == V4L2_CID_TILT_RELATIVE) && vd->pantilt_unit_id > 0) { /*use raw control in this case - prevents uvcvideo cache bug*/ uint32_t pantilt = 0; if(id == V4L2_CID_PAN_RELATIVE) pantilt |= (int16_t) control->value; else pantilt |= ((int16_t) control->value) << 16; return query_xu_control(vd, vd->pantilt_unit_id, 1, UVC_SET_CUR, &pantilt); } if( control->class == V4L2_CTRL_CLASS_USER #ifdef V4L2_CTRL_TYPE_STRING && control->control.type != V4L2_CTRL_TYPE_STRING #endif && control->control.type != V4L2_CTRL_TYPE_INTEGER64) { //using VIDIOC_G_CTRL for user class controls struct v4l2_control ctrl; ctrl.id = control->control.id; ctrl.value = control->value; ret = xioctl(vd->fd, VIDIOC_S_CTRL, &ctrl); } else { //using VIDIOC_G_EXT_CTRLS on single controls struct v4l2_ext_controls ctrls = {0}; struct v4l2_ext_control ctrl = {0}; ctrl.id = control->control.id; switch (control->control.type) { #ifdef V4L2_CTRL_TYPE_STRING case V4L2_CTRL_TYPE_STRING: { unsigned len = strlen(control->string); unsigned max_len = control->control.maximum; if(len > max_len) { ctrl.size = max_len; ctrl.string = (char *) calloc(max_len, sizeof(char)); if(ctrl.string == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (v4l2core_set_control_value_by_id): %s\n", strerror(errno)); exit(-1); } ctrl.string = strncpy(ctrl.string, control->string, max_len); ctrl.string[max_len -1] = '/0'; /*NULL terminated*/ fprintf(stderr, "V4L2_CORE: control (0x%08x) trying to set string size of %d when max is %d (clip)\n", control->control.id, len, max_len); } else { ctrl.size = len; ctrl.string = (char *) strdup(control->string); } break; } #endif #ifdef V4L2_CTRL_TYPE_INTEGER64 case V4L2_CTRL_TYPE_INTEGER64: ctrl.value64 = control->value64; break; #endif default: ctrl.value = control->value; break; } ctrls.ctrl_class = control->class; ctrls.count = 1; ctrls.controls = &ctrl; ret = xioctl(vd->fd, VIDIOC_S_EXT_CTRLS, &ctrls); if(ret) printf("control id: 0x%08x failed to set (error %i)\n", ctrl.id, ret); #ifdef V4L2_CTRL_TYPE_STRING if(control->control.type == V4L2_CTRL_TYPE_STRING) { free(ctrl.string); //clean up string allocation ctrl.string = NULL; } #endif } //update real value get_control_value_by_id(vd, id); return (ret); } /* * free control list * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void free_v4l2_control_list(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); if(vd->list_device_controls == NULL) { return; } v4l2_ctrl_t *first = vd->list_device_controls; while (first != NULL) { v4l2_ctrl_t *next = first->next; if(first->string) free(first->string); if(first->menu) free(first->menu); if(first->menu_entry) { int i = 0; for(i = 0; i < first->menu_entries; i++) free(first->menu_entry[i]); free(first->menu_entry); } free(first); first = next; } vd->list_device_controls = NULL; } guvcview-2.0.2+debian/gview_v4l2core/v4l2_controls.h000066400000000000000000000077671256377215300223500ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef V4L2_CONTROLS_H #define V4L2_CONTROLS_H #include "gviewv4l2core.h" #include "v4l2_core.h" /* * enumerate device (read/write) controls * and creates list in vd->list_device_controls * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_device_controls is null * * returns: error code */ int enumerate_v4l2_control(v4l2_dev_t *vd); /* * return the control associated to id from device list * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * * returns: pointer to v4l2_control if succeded or null otherwise */ v4l2_ctrl_t *get_control_by_id(v4l2_dev_t *vd, int id); /* * updates the value for control id from the device * also updates control flags * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * vd->fd is valid * * returns: ioctl result */ int get_control_value_by_id (v4l2_dev_t *vd, int id); /* * sets the value of control id in device * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * vd->fd is valid * * returns: ioctl result */ int set_control_value_by_id(v4l2_dev_t *vd, int id); /* * goes trough the control list and updates/retrieves current values * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void get_v4l2_control_values (v4l2_dev_t *vd); /* * goes trough the control list and sets values in device * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void set_v4l2_control_values (v4l2_dev_t *vd); /* * goes trough the control list and sets values in device to default * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void set_control_defaults(v4l2_dev_t *vd); /* * Disables special auto-controls with higher IDs than * their absolute/relative counterparts * this is needed before restoring controls state * * args: * vd - pointer to video device data * id - control id * * asserts: * vd is not null * * returns: void */ void disable_special_auto (v4l2_dev_t *vd, int id); /* * free control list * args: * vd - pointer to video device data * * asserts: * vd is not null * * returns: void */ void free_v4l2_control_list(v4l2_dev_t *vd); #endif guvcview-2.0.2+debian/gview_v4l2core/v4l2_core.c000066400000000000000000001427731256377215300214250ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ /*******************************************************************************# # # # V4L2 core library # # # ********************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include /* support for internationalization - i18n */ #include #include #include "gview.h" #include "gviewv4l2core.h" #include "v4l2_core.h" #include "save_image.h" #include "soft_autofocus.h" #include "core_time.h" #include "uvc_h264.h" #include "frame_decoder.h" #include "control_profile.h" #include "v4l2_formats.h" #include "v4l2_controls.h" #include "v4l2_devices.h" #include "../config.h" #ifndef GETTEXT_PACKAGE_V4L2CORE #define GETTEXT_PACKAGE_V4L2CORE "gview_v4l2core" #endif /*video device data mutex*/ static __MUTEX_TYPE mutex = __STATIC_MUTEX_INIT; #define __PMUTEX &mutex /*verbosity (global scope)*/ int verbosity = 0; /*requested format data*/ static int my_pixelformat = 0; static int my_width = 0; static int my_height = 0; static double real_fps = 0.0; static uint64_t fps_ref_ts = 0; static uint32_t fps_frame_count = 0; static uint8_t flag_fps_change = 0; /*set to 1 to request a fps change*/ static uint8_t disable_libv4l2 = 0; /*set to 1 to disable libv4l2 calls*/ static int frame_queue_size = 1; /*just one frame in queue (enough for a single thread)*/ v4l2_dev_t* vd = NULL; /*pointer to device data*/ /* * ioctl with a number of retries in the case of I/O failure * args: * fd - device descriptor * IOCTL_X - ioctl reference * arg - pointer to ioctl data * * asserts: * none * * returns - ioctl result */ int xioctl(int fd, int IOCTL_X, void *arg) { int ret = 0; int tries= IOCTL_RETRY; do { if(!disable_libv4l2) ret = v4l2_ioctl(fd, IOCTL_X, arg); else ret = ioctl(fd, IOCTL_X, arg); } while (ret && tries-- && ((errno == EINTR) || (errno == EAGAIN) || (errno == ETIMEDOUT))); if (ret && (tries <= 0)) fprintf(stderr, "V4L2_CORE: ioctl (%i) retried %i times - giving up: %s)\n", IOCTL_X, IOCTL_RETRY, strerror(errno)); return (ret); } /* * Query video device capabilities and supported formats * args: * none * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: error code (E_OK) */ static int check_v4l2_dev() { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); memset(&vd->cap, 0, sizeof(struct v4l2_capability)); if ( xioctl(vd->fd, VIDIOC_QUERYCAP, &vd->cap) < 0 ) { fprintf( stderr, "V4L2_CORE: (VIDIOC_QUERYCAP) error: %s\n", strerror(errno)); return E_QUERYCAP_ERR; } if ( ( vd->cap.capabilities & V4L2_CAP_VIDEO_CAPTURE ) == 0) { fprintf(stderr, "V4L2_CORE: Error opening device %s: video capture not supported.\n", vd->videodevice); return E_QUERYCAP_ERR; } if (!(vd->cap.capabilities & V4L2_CAP_STREAMING)) { fprintf(stderr, "V4L2_CORE: %s does not support streaming i/o\n", vd->videodevice); return E_QUERYCAP_ERR; } if(vd->cap_meth == IO_READ) { vd->mem[vd->buf.index] = NULL; if (!(vd->cap.capabilities & V4L2_CAP_READWRITE)) { fprintf(stderr, "V4L2_CORE: %s does not support read, try with mmap\n", vd->videodevice); return E_READ_ERR; } } if(verbosity > 0) printf("V4L2_CORE: Init. %s (location: %s)\n", vd->cap.card, vd->cap.bus_info); /*enumerate frame formats supported by device*/ int ret = enum_frame_formats(vd); if(ret != E_OK) { fprintf(stderr, "V4L2_CORE: no valid frame formats (with valid sizes) found for device\n"); return ret; } /*add h264 (uvc muxed) to format list if supported by device*/ add_h264_format(vd); /*enumerate device controls*/ enumerate_v4l2_control(vd); /*gets the current control values and sets their flags*/ get_v4l2_control_values(vd); /*if we have a focus control initiate the software autofocus*/ if(vd->has_focus_control_id) { if(v4l2core_soft_autofocus_init (vd) != E_OK) vd->has_focus_control_id = 0; } return E_OK; } /* * unmaps v4l2 buffers * args: * none * * asserts: * vd is not null * * returns: error code (0- E_OK) */ static int unmap_buff() { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: unmapping v4l2 buffers\n"); int i=0; int ret=E_OK; switch(vd->cap_meth) { case IO_READ: break; case IO_MMAP: for (i = 0; i < NB_BUFFER; i++) { // unmap old buffer if((vd->mem[i] != MAP_FAILED) && vd->buff_length[i]) if((ret=v4l2_munmap(vd->mem[i], vd->buff_length[i]))<0) { fprintf(stderr, "V4L2_CORE: couldn't unmap buff: %s\n", strerror(errno)); } } } return ret; } /* * maps v4l2 buffers * args: * none * * asserts: * vd is not null * * returns: error code (0- E_OK) */ static int map_buff() { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: mapping v4l2 buffers\n"); int i = 0; // map new buffer for (i = 0; i < NB_BUFFER; i++) { vd->mem[i] = v4l2_mmap( NULL, // start anywhere vd->buff_length[i], PROT_READ | PROT_WRITE, MAP_SHARED, vd->fd, vd->buff_offset[i]); if (vd->mem[i] == MAP_FAILED) { fprintf(stderr, "V4L2_CORE: Unable to map buffer: %s\n", strerror(errno)); return E_MMAP_ERR; } if(verbosity > 1) printf("V4L2_CORE: mapped buffer[%i] with length %i to pos %p\n", i, vd->buff_length[i], vd->mem[i]); } return (E_OK); } /* * Query and map buffers * args: * none * * asserts: * vd is not null * * returns: error code (0- E_OK) */ static int query_buff() { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: query v4l2 buffers\n"); int i=0; int ret=E_OK; switch(vd->cap_meth) { case IO_READ: break; case IO_MMAP: for (i = 0; i < NB_BUFFER; i++) { memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); vd->buf.index = i; vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; //vd->buf.timecode = vd->timecode; //vd->buf.timestamp.tv_sec = 0; //vd->buf.timestamp.tv_usec = 0; vd->buf.memory = V4L2_MEMORY_MMAP; ret = xioctl(vd->fd, VIDIOC_QUERYBUF, &vd->buf); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_QUERYBUF) Unable to query buffer[%i]: %s\n", i, strerror(errno)); if(errno == EINVAL) fprintf(stderr, " try with read method instead\n"); return E_QUERYBUF_ERR; } if (vd->buf.length <= 0) fprintf(stderr, "V4L2_CORE: (VIDIOC_QUERYBUF) - buffer length is %i\n", vd->buf.length); vd->buff_length[i] = vd->buf.length; vd->buff_offset[i] = vd->buf.m.offset; } // map the new buffers if(map_buff() != 0) ret = E_MMAP_ERR; break; } for(i = 0; i < vd->frame_queue_size; ++i) vd->frame_queue[i].raw_frame_max_size = vd->buf.length; return ret; } /* * Queue Buffers * args: * none * * asserts: * vd is not null * * returns: error code (0- E_OK) */ static int queue_buff() { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: queue v4l2 buffers\n"); int i=0; int ret=E_OK; switch(vd->cap_meth) { case IO_READ: break; case IO_MMAP: default: for (i = 0; i < NB_BUFFER; ++i) { memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); vd->buf.index = i; vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; //vd->buf.flags = V4L2_BUF_FLAG_TIMECODE; //vd->buf.timecode = vd->timecode; //vd->buf.timestamp.tv_sec = 0; //vd->buf.timestamp.tv_usec = 0; vd->buf.memory = V4L2_MEMORY_MMAP; ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUF) Unable to queue buffer: %s\n", strerror(errno)); return E_QBUF_ERR; } } vd->buf.index = 0; /*reset index*/ } return ret; } /* * do a VIDIOC_S_PARM ioctl for setting frame rate * args: * none * * asserts: * vd is not null * * returns: error code */ static int do_v4l2_framerate_update() { /*asserts*/ assert(vd != NULL); int ret = 0; /*get the current stream parameters*/ vd->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ret = xioctl(vd->fd, VIDIOC_G_PARM, &vd->streamparm); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_G_PARM) error: %s\n", strerror(errno)); fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); return ret; } if (!(vd->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME)) { fprintf(stderr, "V4L2_CORE: V4L2_CAP_TIMEPERFRAME supported\n"); //fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); } vd->streamparm.parm.capture.timeperframe.numerator = vd->fps_num; vd->streamparm.parm.capture.timeperframe.denominator = vd->fps_denom; /*request the new frame rate*/ ret = xioctl(vd->fd, VIDIOC_S_PARM, &vd->streamparm); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_S_PARM) error: %s\n", strerror(errno)); fprintf(stderr, "V4L2_CORE: Unable to set %d/%d fps\n", vd->fps_num, vd->fps_denom); } return ret; } /* * sets video device frame rate * args: * none * * asserts: * vd is not null * * returns: VIDIOC_S_PARM ioctl result value * (sets vd->fps_denom and vd->fps_num to device value) */ static int set_v4l2_framerate () { /*assertions*/ assert(vd != NULL); if(verbosity > 2) printf("V4L2_CORE: trying to change fps to %i/%i\n", vd->fps_num, vd->fps_denom); int ret = 0; /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); /*store streaming flag*/ uint8_t stream_status = vd->streaming; /*try to stop the video stream*/ if(stream_status == STRM_OK) v4l2core_stop_stream(); switch(vd->cap_meth) { case IO_READ: ret = do_v4l2_framerate_update(); break; case IO_MMAP: if(stream_status == STRM_OK) { /*unmap the buffers*/ unmap_buff(vd); } ret = do_v4l2_framerate_update(); /* * For uvc muxed H264 stream * since we are restarting the video stream and codec values will be reset * commit the codec data again */ if(vd->requested_fmt == V4L2_PIX_FMT_H264 && h264_get_support() == H264_MUXED) { if(verbosity > 0) printf("V4L2_CORE: setting muxed H264 stream in MJPG container\n"); set_h264_muxed_format(vd); } break; } if(stream_status == STRM_OK) { query_buff(); /*also mmaps the buffers*/ queue_buff(); } /*try to start the video stream*/ if(stream_status == STRM_OK) v4l2core_start_stream(); /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); return ret; } /* * checks if frame data is available * args: * none * * asserts: * vd is not null * * returns: error code (0- E_OK) */ static int check_frame_available() { /*asserts*/ assert(vd != NULL); int ret = E_OK; fd_set rdset; struct timeval timeout; /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); int stream_state = vd->streaming; /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); /*make sure streaming is on*/ if(stream_state != STRM_OK) { if(stream_state == STRM_REQ_STOP) v4l2core_stop_stream(); fprintf(stderr, "V4L2_CORE: (get_v4l2_frame) video stream must be started first\n"); return E_NO_STREAM_ERR; } /*a fps change was requested while streaming*/ if(flag_fps_change > 0) { if(verbosity > 2) printf("V4L2_CORE: fps change request detected\n"); set_v4l2_framerate(); flag_fps_change = 0; } FD_ZERO(&rdset); FD_SET(vd->fd, &rdset); timeout.tv_sec = 1; /* 1 sec timeout*/ timeout.tv_usec = 0; /* select - wait for data or timeout*/ ret = select(vd->fd + 1, &rdset, NULL, NULL, &timeout); if (ret < 0) { fprintf(stderr, "V4L2_CORE: Could not grab image (select error): %s\n", strerror(errno)); return E_SELECT_ERR; } if (ret == 0) { fprintf(stderr, "V4L2_CORE: Could not grab image (select timeout): %s\n", strerror(errno)); return E_SELECT_TIMEOUT_ERR; } if ((ret > 0) && (FD_ISSET(vd->fd, &rdset))) return E_OK; return E_UNKNOWN_ERR; } /* * set verbosity * args: * level - verbosity level * * asserts: * none * * returns void */ void v4l2core_set_verbosity(int level) { verbosity = level; } /* * set frame queue size (set before v4l2core_init_dev) * args: * size - size in frames of frame queue * * asserts: * none * * returns void */ void v4l2core_set_frame_queue_size(int size) { frame_queue_size = size; } /* * disable libv4l2 calls * args: * none * * asserts: * none * * returns void */ void v4l2core_disable_libv4l2() { disable_libv4l2 = 1; } /* * enable libv4l2 calls (default) * args: * none * * asserts: * none * * returns void */ void v4l2core_enable_libv4l2() { disable_libv4l2 = 0; } /* * Set v4l2 capture method * args: * method - capture method (IO_READ or IO_MMAP) * * asserts: * vd is not null * * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) */ void v4l2core_set_capture_method(int method) { /*asserts*/ assert(vd != NULL); vd->cap_meth = method; } /* * define fps values * args: * num - fps numerator * denom - fps denominator * * asserts: * vd is not null * * returns - void */ void v4l2core_define_fps(int num, int denom) { /*assertions*/ assert(vd != NULL); if(num > 0) vd->fps_num = num; if(denom > 0) vd->fps_denom = denom; if(verbosity > 2) printf("V4L2_CORE: fps configured to %i/%i\n", vd->fps_num, vd->fps_denom); } /* * get requested fps numerator * args: * none * * asserts: * vd is not null * * returns - requested fps numerator */ int v4l2core_get_fps_num() { /*assertions*/ assert(vd != NULL); return vd->fps_num; } /* * get requested fps denominator * args: * none * * asserts: * vd is not null * * returns - requested fps denominator */ int v4l2core_get_fps_denom() { /*assertions*/ assert(vd != NULL); return vd->fps_denom; } /* * get real fps * args: * none * * asserts: * none * * returns: double with real fps value */ double v4l2core_get_realfps() { return(real_fps); } /* * get videodevice string * args: * none * * asserts: * none * * return: videodevice string */ const char *v4l2core_get_videodevice() { /*assertions*/ assert(vd != NULL); return (const char *) vd->videodevice; } /* * get device available number of formats * args: * none * * asserts: * vd is not null * * returns - number of formats for device */ int v4l2core_get_number_formats() { /*assertions*/ assert(vd != NULL); return vd->numb_formats; } /* * get has_pantilt_id flag * args: * none * * asserts: * vd is not null * * returns: has_pantilt_id flag */ int v4l2core_has_pantilt_id() { /*assertions*/ assert(vd != NULL); return vd->has_pantilt_control_id; } /* * get has_focus_control_id flag * args: * none * * asserts: * vd is not null * * returns: has_focus_control_id flag */ int v4l2core_has_focus_control_id() { /*assertions*/ assert(vd != NULL); return vd->has_focus_control_id; } /* * sets bayer pixel order * args: * order - pixel order * * asserts: * vd is not null * * returns - void */ void v4l2core_set_bayer_pix_order(uint8_t order) { /*assertions*/ assert(vd != NULL); vd->bayer_pix_order = order; } /* * gets bayer pixel order * args: * none * * asserts: * vd is not null * * returns - bayer pixel order */ uint8_t v4l2core_get_bayer_pix_order() { /*assertions*/ assert(vd != NULL); return vd->bayer_pix_order; } /* * flags bayer mode * args: * flag - 1 if we are streaming bayer data (0 otherwise) * * asserts: * vd is not null * * returns - void */ void v4l2core_set_isbayer(uint8_t flag) { /*assertions*/ assert(vd != NULL); vd->isbayer = flag; } /* * gets bayer pixel order * args: * none * * asserts: * vd is not null * * returns - isbayer flag */ uint8_t v4l2core_get_isbayer() { /*assertions*/ assert(vd != NULL); return vd->isbayer; } /* * gets current device index * args: * none * * asserts: * vd is not null * * returns - device index */ int v4l2core_get_this_device_index() { /*assertions*/ assert(vd != NULL); return vd->this_device; } /* * Start video stream * args: * none * * asserts: * vd is not null * * returns: VIDIOC_STREAMON ioctl result (E_OK or E_STREAMON_ERR) */ int v4l2core_start_stream() { /*assertions*/ assert(vd != NULL); if(vd->streaming == STRM_OK) { fprintf(stderr, "V4L2_CORE: (stream already started) stream_status = STRM_OK\n"); return; } int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; int ret=E_OK; switch(vd->cap_meth) { case IO_READ: //do nothing break; case IO_MMAP: default: ret = xioctl(vd->fd, VIDIOC_STREAMON, &type); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_STREAMON) Unable to start stream: %s \n", strerror(errno)); return E_STREAMON_ERR; } break; } vd->streaming = STRM_OK; if(verbosity > 2) printf("V4L2_CORE: (VIDIOC_STREAMON) stream_status = STRM_OK\n"); return ret; } /* * request video stream to stop * args: * none * * asserts: * vd is not null * * returns: error code (0 -OK) */ int v4l2core_request_stop_stream() { /*assertions*/ assert(vd != NULL); if(vd->streaming != STRM_OK) return -1; vd->streaming = STRM_REQ_STOP; if(verbosity > 2) printf("V4L2_CORE: (request stream stop) stream_status = STRM_REQ_STOP\n"); return 0; } /* * Stops the video stream * args: * none * * asserts: * vd is not null * * returns: VIDIOC_STREAMON ioctl result (E_OK) */ int v4l2core_stop_stream() { /*assertions*/ assert(vd != NULL); int type = V4L2_BUF_TYPE_VIDEO_CAPTURE; int ret=E_OK; switch(vd->cap_meth) { case IO_READ: case IO_MMAP: default: ret = xioctl(vd->fd, VIDIOC_STREAMOFF, &type); if (ret < 0) { if(errno == 9) /* stream allready stoped*/ vd->streaming = STRM_STOP; fprintf(stderr, "V4L2_CORE: (VIDIOC_STREAMOFF) Unable to stop stream: %s\n", strerror(errno)); return E_STREAMOFF_ERR; } break; } vd->streaming = STRM_STOP; if(verbosity > 2) printf("V4L2_CORE: (VIDIOC_STREAMOFF) stream_status = STRM_STOP\n"); return ret; } /* * get next ready flaged frame from queue * args: * none * * returns: index of frame queue or -1 if none */ static int get_next_ready_frame() { int i = 0; for(i=0; iframe_queue_size; ++i) { if(vd->frame_queue[i].status == FRAME_READY) return (i); } return -1; } /* * process input buffer * args: * none * * returns: frame_queue index */ static int process_input_buffer() { /*get next available frame in queue*/ int qind = get_next_ready_frame(vd); if(verbosity > 2) printf("V4L2_CORE: process frame queue index %i\n", qind); if(qind < 0 || qind >= vd->frame_queue_size) { if(verbosity > 2) fprintf(stderr,"V4L2_CORE: frame queue index %i is invalid (no free frames in queue?)\n", qind); return -1; } vd->frame_queue[qind].status = FRAME_DECODING; /* * driver timestamp is unreliable * use monotonic system time */ vd->frame_queue[qind].timestamp = ns_time_monotonic(); vd->frame_queue[qind].index = vd->buf.index; vd->frame_index++; vd->frame_queue[qind].raw_frame_size = vd->buf.bytesused; if(vd->frame_queue[qind].raw_frame_size == 0) { if(verbosity > 1) fprintf(stderr, "V4L2_CORE: VIDIOC_QBUF returned buf.bytesused = 0 \n"); } /*point vd->raw_frame to current frame buffer*/ vd->frame_queue[qind].raw_frame = vd->mem[vd->buf.index]; /*determine real fps every 3 sec aprox.*/ fps_frame_count++; if(vd->frame_queue[qind].timestamp - fps_ref_ts >= (3 * NSEC_PER_SEC)) { if(verbosity > 2) printf("V4L2CORE: (fps) ref:%"PRId64" ts:%"PRId64" frames:%i\n", fps_ref_ts, vd->frame_queue[qind].timestamp, fps_frame_count); real_fps = (double) (fps_frame_count * NSEC_PER_SEC) / (double) (vd->frame_queue[qind].timestamp - fps_ref_ts); fps_frame_count = 0; fps_ref_ts = vd->frame_queue[qind].timestamp; } return qind; } /* * gets the next video frame (must be released after processing) * args: * none * * asserts: * vd is not null * * returns: pointer frame buffer (NULL on error) */ v4l2_frame_buff_t *v4l2core_get_frame() { /*asserts*/ assert(vd != NULL); /*for H264 streams request a IDR frame with SPS and PPS data if it's the first frame*/ if(vd->requested_fmt == V4L2_PIX_FMT_H264 && vd->frame_index < 1) request_h264_frame_type(vd, PICTURE_TYPE_IDR_FULL); int res = 0; int ret = check_frame_available(vd); int qind = -1; if (ret < 0) return NULL; int bytes_used = 0; switch(vd->cap_meth) { case IO_READ: /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); if(vd->streaming == STRM_OK) { vd->buf.bytesused = v4l2_read (vd->fd, vd->mem[vd->buf.index], vd->buf.length); bytes_used = vd->buf.bytesused; if(bytes_used > 0) qind = process_input_buffer(); } else res = -1; /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); if(res < 0) return NULL; if (-1 == bytes_used ) { switch (errno) { case EAGAIN: fprintf(stderr, "V4L2_CORE: No data available for read: %s\n", strerror(errno)); break; case EINVAL: fprintf(stderr, "V4L2_CORE: Read method error, try mmap instead: %s\n", strerror(errno)); break; case EIO: fprintf(stderr, "V4L2_CORE: read I/O Error: %s\n", strerror(errno)); break; default: fprintf(stderr, "V4L2_CORE: read: %s\n", strerror(errno)); break; } return NULL; } break; case IO_MMAP: default: //if((vd->setH264ConfigProbe > 0)) //{ //if(vd->setH264ConfigProbe) //{ //video_disable(vd); //unmap_buff(vd); //h264_commit(vd, global); //vd->setH264ConfigProbe = 0; //query_buff(vd); //queue_buff(vd); //video_enable(vd); //} //ret = check_frame_available(vd); //if (ret < 0) //return ret; //} /* dequeue the buffers */ /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); if(vd->streaming == STRM_OK) { memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->buf.memory = V4L2_MEMORY_MMAP; ret = xioctl(vd->fd, VIDIOC_DQBUF, &vd->buf); if(!ret) qind = process_input_buffer(); else fprintf(stderr, "V4L2_CORE: (VIDIOC_DQBUF) Unable to dequeue buffer: %s\n", strerror(errno)); } else res = -1; /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); if(res < 0 || ret < 0) return NULL; } if(qind < 0 || qind >= vd->frame_queue_size) return NULL; return &vd->frame_queue[qind]; } /* * releases the video frame (so that it can be reused by the driver) * args: * frame - pointer to decoded frame buffer * * asserts: * vd is not null * * returns: error code (E_OK) */ int v4l2core_release_frame(v4l2_frame_buff_t *frame) { int ret = 0; //match the v4l2_buffer with the correspondig frame vd->buf.index = frame->index; switch(vd->cap_meth) { case IO_READ: break; case IO_MMAP: default: /* queue the buffer */ ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf); if(ret) fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUF) Unable to queue buffer %i: %s\n", frame->index, strerror(errno)); break; } /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); frame->raw_frame = NULL; frame->raw_frame_size = 0; frame->status = FRAME_READY; /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); if (ret < 0) return E_QBUF_ERR; return E_OK; } /* * gets the next video frame and decodes it * args: * none * * returns: pointer to decoded frame buffer ( NULL on error) */ v4l2_frame_buff_t *v4l2core_get_decoded_frame() { v4l2_frame_buff_t *frame = v4l2core_get_frame(); if(frame != NULL) { /*decode the raw frame*/ if(decode_v4l2_frame(vd, frame) != E_OK) { fprintf(stderr, "V4L2_CORE: Error - Couldn't decode frame\n"); } } return frame; } /* * Try/Set device video stream format * args: * width - requested video frame width * height - requested video frame height * pixelformat - requested v4l2 pixelformat * * asserts: * vd is not null * * returns: error code ( E_OK) */ static int try_video_stream_format(int width, int height, int pixelformat) { /*assertions*/ assert(vd != NULL); int ret = E_OK; /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); vd->requested_fmt = pixelformat; uint8_t stream_status = vd->streaming; if(stream_status == STRM_OK) v4l2core_stop_stream(); if(vd->requested_fmt == V4L2_PIX_FMT_H264 && h264_get_support() == H264_MUXED) { if(verbosity > 0) printf("V4L2_CORE: requested H264 stream is supported through muxed MJPG\n"); pixelformat = V4L2_PIX_FMT_MJPEG; } vd->format.fmt.pix.pixelformat = pixelformat; vd->format.fmt.pix.width = width; vd->format.fmt.pix.height = height; /* make sure we set a valid format*/ if(verbosity > 0) printf("V4L2_CORE: checking format: %c%c%c%c\n", (vd->format.fmt.pix.pixelformat) & 0xFF, ((vd->format.fmt.pix.pixelformat) >> 8) & 0xFF, ((vd->format.fmt.pix.pixelformat) >> 16) & 0xFF, ((vd->format.fmt.pix.pixelformat) >> 24) & 0xFF); /*override field and type entries*/ vd->format.fmt.pix.field = V4L2_FIELD_ANY; vd->format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ret = xioctl(vd->fd, VIDIOC_S_FMT, &vd->format); if(!ret && (vd->requested_fmt == V4L2_PIX_FMT_H264) && (h264_get_support() == H264_MUXED)) { if(verbosity > 0) printf("V4L2_CORE: setting muxed H264 stream in MJPG container\n"); set_h264_muxed_format(vd); } /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); if (ret != 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_S_FORMAT) Unable to set format: %s\n", strerror(errno)); return E_FORMAT_ERR; } if ((vd->format.fmt.pix.width != width) || (vd->format.fmt.pix.height != height)) { fprintf(stderr, "V4L2_CORE: Requested resolution unavailable: got width %d height %d\n", vd->format.fmt.pix.width, vd->format.fmt.pix.height); } /* * try to alloc frame buffers based on requested format */ ret = alloc_v4l2_frames(vd); if( ret != E_OK) { fprintf(stderr, "V4L2_CORE: Frame allocation returned error (%i)\n", ret); return E_ALLOC_ERR; } switch (vd->cap_meth) { case IO_READ: /*allocate buffer for read*/ /*lock the mutex*/ __LOCK_MUTEX( __PMUTEX ); memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); vd->buf.length = (vd->format.fmt.pix.width) * (vd->format.fmt.pix.height) * 3; //worst case (rgb) vd->mem[vd->buf.index] = calloc(vd->buf.length, sizeof(uint8_t)); if(vd->mem[vd->buf.index] == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (try_video_stream_format): %s\n", strerror(errno)); exit(-1); } /*unlock the mutex*/ __UNLOCK_MUTEX( __PMUTEX ); break; case IO_MMAP: default: /* request buffers */ memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); vd->rb.count = NB_BUFFER; vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->rb.memory = V4L2_MEMORY_MMAP; ret = xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to allocate buffers: %s\n", strerror(errno)); return E_REQBUFS_ERR; } /* map the buffers */ if (query_buff(vd)) { fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUFS) Unable to query buffers: %s\n", strerror(errno)); /* * delete requested buffers * no need to unmap as mmap failed for sure */ if(verbosity > 0) printf("V4L2_CORE: cleaning requestbuffers\n"); memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); vd->rb.count = 0; vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->rb.memory = V4L2_MEMORY_MMAP; if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to delete buffers: %s\n", strerror(errno)); return E_QUERYBUF_ERR; } /* Queue the buffers */ if (queue_buff(vd)) { fprintf(stderr, "V4L2_CORE: (VIDIOC_QBUFS) Unable to queue buffers: %s\n", strerror(errno)); /*delete requested buffers */ if(verbosity > 0) printf("V4L2_CORE: cleaning requestbuffers\n"); unmap_buff(vd); memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); vd->rb.count = 0; vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->rb.memory = V4L2_MEMORY_MMAP; if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Unable to delete buffers: %s\n", strerror(errno)); return E_QBUF_ERR; } } /*this locks the mutex (can't be called while the mutex is being locked)*/ v4l2core_request_framerate_update(); if(stream_status == STRM_OK) v4l2core_start_stream(); /*update the current framerate for the device*/ v4l2core_get_framerate(); return E_OK; } /* * get frame width * args: * none * * asserts: * vd is not null * * returns: frame width */ int v4l2core_get_frame_width() { /*assertions*/ assert(vd != NULL); return vd->format.fmt.pix.width; } /* * get frame height * args: * none * * asserts: * vd is not null * * returns: frame height */ int v4l2core_get_frame_height() { /*assertions*/ assert(vd != NULL); return vd->format.fmt.pix.height; } /* * get requested frame format * args: * none * * asserts: * vd is not null * * returns: requested frame format */ int v4l2core_get_requested_frame_format() { /*asserts*/ assert(vd != NULL); return vd->requested_fmt; } /* * prepare new format * args: * new_format - new format * * asserts: * vd is not null * * returns: none */ void v4l2core_prepare_new_format(int new_format) { /*asserts*/ assert(vd != NULL); int format_index = v4l2core_get_frame_format_index(new_format); if(format_index < 0) format_index = 0; my_pixelformat = vd->list_stream_formats[format_index].format; } /* * prepare a valid format (first in the format list) * args: * none * * asserts: * vd is not null * * returns: none */ void v4l2core_prepare_valid_format() { /*asserts*/ assert(vd != NULL); int format_index = 0; my_pixelformat = vd->list_stream_formats[format_index].format; } /* * prepare new resolution * args: * new_width - new width * new_height - new height * * asserts: * vd is not null * * returns: none */ void v4l2core_prepare_new_resolution(int new_width, int new_height) { /*asserts*/ assert(vd != NULL); int format_index = v4l2core_get_frame_format_index(my_pixelformat); if(format_index < 0) format_index = 0; int resolution_index = v4l2core_get_format_resolution_index(format_index, new_width, new_height); if(resolution_index < 0) resolution_index = 0; my_width = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].width; my_height = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].height; } /* * prepare valid resolution (first in the resolution list for the format) * args: * none * * asserts: * vd is not null * * returns: none */ void v4l2core_prepare_valid_resolution() { /*asserts*/ assert(vd != NULL); int format_index = v4l2core_get_frame_format_index(my_pixelformat); if(format_index < 0) format_index = 0; int resolution_index = 0; my_width = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].width; my_height = vd->list_stream_formats[format_index].list_stream_cap[resolution_index].height; } /* * update the current format (pixelformat, width and height) * args: * none * * asserts: * vd is not null * * returns: * error code */ int v4l2core_update_current_format() { /*asserts*/ assert(vd != NULL); return(try_video_stream_format(my_width, my_height, my_pixelformat)); } /* * clean video device data allocation * args: * none * * asserts: * vd is not null * * returns: void */ static void clean_v4l2_dev() { /*assertions*/ assert(vd != NULL); if(vd->videodevice) free(vd->videodevice); vd->videodevice = NULL; if(vd->has_focus_control_id) v4l2core_soft_autofocus_close(vd); if(vd->list_device_controls) free_v4l2_control_list(vd); if(vd->list_stream_formats) free_frame_formats(vd); if(vd->list_device_controls) free_v4l2_control_list(vd); if(vd->frame_queue) free(vd->frame_queue); /*close descriptor*/ if(vd->fd > 0) v4l2_close(vd->fd); vd->fd = 0; free(vd); } /* * Initiate video device data with default values * args: * device - device name (e.g: "/dev/video0") * * asserts: * device is not null * * returns: error code (< 0) on error */ int v4l2core_init_dev(const char *device) { assert(device != NULL); /*localization*/ char* lc_all = setlocale (LC_ALL, ""); char* lc_dir = bindtextdomain (GETTEXT_PACKAGE_V4L2CORE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE_V4L2CORE, "UTF-8"); if (verbosity > 1) printf("V4L2_CORE: language catalog=> dir:%s type:%s cat:%s.mo\n", lc_dir, lc_all, GETTEXT_PACKAGE_V4L2CORE); /*alloc the device data*/ vd = calloc(1, sizeof(v4l2_dev_t)); assert(vd != NULL); /*MMAP by default*/ vd->cap_meth = IO_MMAP; vd->videodevice = strdup(device); if(verbosity > 0) { printf("V4L2_CORE: capture method mmap (%i)\n",vd->cap_meth); printf("V4L2_CORE: video device: %s \n", vd->videodevice); } vd->frame_queue_size = frame_queue_size; /*alloc frame buffer queue*/ vd->frame_queue = calloc(vd->frame_queue_size, sizeof(v4l2_frame_buff_t)); vd->h264_no_probe_default = 0; vd->h264_SPS = NULL; vd->h264_SPS_size = 0; vd->h264_PPS = NULL; vd->h264_PPS_size = 0; vd->h264_last_IDR = NULL; vd->h264_last_IDR_size = 0; /*set some defaults*/ vd->fps_num = 1; vd->fps_denom = 25; vd->pan_step = 128; vd->tilt_step = 128; /*open device*/ if ((vd->fd = v4l2_open(vd->videodevice, O_RDWR | O_NONBLOCK, 0)) < 0) { fprintf(stderr, "V4L2_CORE: ERROR opening V4L interface: %s\n", strerror(errno)); clean_v4l2_dev(vd); return (-1); } vd->this_device = v4l2core_get_device_index(vd->videodevice); if(vd->this_device < 0) vd->this_device = 0; v4l2_device_list *device_list = v4l2core_get_device_list(); if(device_list && device_list->list_devices) device_list->list_devices[vd->this_device].current = 1; /*try to map known xu controls (we could/should leave this for libwebcam)*/ init_xu_ctrls(vd); /*zero structs*/ memset(&vd->cap, 0, sizeof(struct v4l2_capability)); memset(&vd->format, 0, sizeof(struct v4l2_format)); memset(&vd->buf, 0, sizeof(struct v4l2_buffer)); memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); memset(&vd->streamparm, 0, sizeof(struct v4l2_streamparm)); if(check_v4l2_dev(vd) != E_OK) { clean_v4l2_dev(vd); return (-2); } int i = 0; for (i = 0; i < NB_BUFFER; i++) { vd->mem[i] = MAP_FAILED; /*not mmaped yet*/ } return (0); } /* * get stream frame format list for device * args: * none * * asserts: * vd is not null * * return: pointer to first format in the list */ v4l2_stream_formats_t *v4l2core_get_formats_list() { /*assertions*/ assert(vd != NULL); return vd->list_stream_formats; } /* * get device control list * args: * none * * asserts: * vd is not null * * return: pointer to first control in the list */ v4l2_ctrl_t *v4l2core_get_control_list() { /*assertions*/ assert(vd != NULL); return vd->list_device_controls; } /* * get device pan step value * args: * none * * asserts: * vd is not null * * return: pan step value */ int v4l2core_get_pan_step() { /*assertions*/ assert(vd != NULL); return vd->pan_step; } /* * get device tilt step value * args: * none * * asserts: * vd is not null * * return: tilt step value */ int v4l2core_get_tilt_step() { /*assertions*/ assert(vd != NULL); return vd->tilt_step; } /* * set device pan step value * args: * step - pan step value * * asserts: * vd is not null * * return: none */ void v4l2core_set_pan_step(int step) { /*assertions*/ assert(vd != NULL); vd->pan_step = step; } /* * set device tilt step value * args: * step -tilt step value * * asserts: * vd is not null * * return: none */ void v4l2core_set_tilt_step(int step) { /*assertions*/ assert(vd != NULL); vd->tilt_step = step; } /* * initiate software autofocus * args: * none * * asserts: * none * * returns: error code (0 - E_OK) */ int v4l2core_soft_autofocus_init () { return soft_autofocus_init(vd); } /* * run the software autofocus * args: * frame - pointer to frame buffer * * asserts: * vd is not null * * returns: 1 - running 0- focused * (only matters for non-continue focus) */ int v4l2core_soft_autofocus_run(v4l2_frame_buff_t *frame) { return soft_autofocus_run(vd, frame); } /* * clean v4l2 buffers * args: * none * * asserts: * vd is not null * * return: none */ void v4l2core_clean_buffers() { /*assertions*/ assert(vd != NULL); if(verbosity > 1) printf("V4L2_CORE: cleaning v4l2 buffers\n"); if(vd->streaming == STRM_OK) v4l2core_stop_stream(vd); clean_v4l2_frames(vd); // unmap queue buffers switch(vd->cap_meth) { case IO_READ: if(vd->mem[vd->buf.index]!= NULL) { free(vd->mem[vd->buf.index]); vd->mem[vd->buf.index] = NULL; } break; case IO_MMAP: default: //delete requested buffers unmap_buff(vd); memset(&vd->rb, 0, sizeof(struct v4l2_requestbuffers)); vd->rb.count = 0; vd->rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->rb.memory = V4L2_MEMORY_MMAP; if(xioctl(vd->fd, VIDIOC_REQBUFS, &vd->rb)<0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_REQBUFS) Failed to delete buffers: %s (errno %d)\n", strerror(errno), errno); } break; } } /* * cleans video device data and allocations * args: * none * * asserts: * vd is not null * * returns: void */ void v4l2core_close_dev() { /*asserts*/ assert(vd != NULL); v4l2core_clean_buffers(); clean_v4l2_dev(); } /* * request a fps update - this locks the mutex * (can't be called while the mutex is being locked) * args: * none * * asserts: * vd is not null * * returns: none */ void v4l2core_request_framerate_update() { /* * if we are streaming flag a fps change when retrieving frame * else change fps immediatly */ if(vd->streaming == STRM_OK) flag_fps_change = 1; else set_v4l2_framerate(); } /* * gets video device defined frame rate (not real - consider it a maximum value) * args: * none * * asserts: * vd is not null * * returns: VIDIOC_G_PARM ioctl result value * (sets vd->fps_denom and vd->fps_num to device value) */ int v4l2core_get_framerate () { /*assertions*/ assert(vd != NULL); int ret=0; vd->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ret = xioctl(vd->fd, VIDIOC_G_PARM, &vd->streamparm); if (ret < 0) { fprintf(stderr, "V4L2_CORE: (VIDIOC_G_PARM) error: %s\n", strerror(errno)); return ret; } else { if (vd->streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) { vd->fps_denom = vd->streamparm.parm.capture.timeperframe.denominator; vd->fps_num = vd->streamparm.parm.capture.timeperframe.numerator; } } if(vd->fps_denom == 0 ) vd->fps_denom = 1; if(vd->fps_num == 0) vd->fps_num = 1; return ret; } /* * return the control associated to id from device list * args: * id - control id * * asserts: * vd is not null * vd->list_device_controls is not null * * returns: pointer to v4l2_control if succeded or null otherwise */ v4l2_ctrl_t *v4l2core_get_control_by_id(int id) { return get_control_by_id(vd, id); } /* * updates the value for control id from the device * also updates control flags * args: * id -control id * * asserts: * none * * returns: ioctl result */ int v4l2core_get_control_value_by_id (int id) { return get_control_value_by_id (vd, id); } /* * goes trough the control list and sets values in device to default * args: * none * * asserts: * none * * returns: void */ void v4l2core_set_control_defaults() { set_control_defaults(vd); } /* * sets the value of control id in device * args: * id - control id * * asserts: * none * * returns: ioctl result */ int v4l2core_set_control_value_by_id(int id) { return set_control_value_by_id(vd, id); } /* * save the current frame to file * args: * frame - pointer to frame buffer * filename - output file name * format - image type * (IMG_FMT_RAW, IMG_FMT_JPG, IMG_FMT_PNG, IMG_FMT_BMP) * * asserts: * vd is not null * * returns: error code */ int v4l2core_save_image(v4l2_frame_buff_t *frame, const char *filename, int format) { save_frame_image(vd, frame, filename, format); } /* * get h264 unit id * args: * none * * asserts: * vd is not null * * returns: unit id on success or error code ( < 0 ) on fail */ int v4l2core_get_h264_unit_id() { /*assertions*/ assert(vd != NULL); return vd->h264_unit_id; } /* * gets the current h264_config_probe_req data struct * args: * none * * asserts: * vd is not null * * returns: pointer to current h264_config_probe_req data struct */ uvcx_video_config_probe_commit_t *v4l2core_get_h264_config_probe_req() { /*assertions*/ assert(vd != NULL); return &(vd->h264_config_probe_req); } /* * flag core to use the preset h264_config_probe_req data (don't reset to default before commit) * args: * flag - value to set * * asserts: * vd is not null * * returns: none */ void v4l2core_set_h264_no_probe_default(uint8_t flag) { /*assertions*/ assert(vd != NULL); vd->h264_no_probe_default = flag; } /* * get h264_no_probe_default flag * args: * none * * asserts: * vd is not null * * returns: h264_no_probe_default flag */ uint8_t v4l2core_get_h264_no_probe_default() { /*assertions*/ assert(vd != NULL); return vd->h264_no_probe_default; } /* * get PPS NALU size * args: * none * * asserts: * vd is not null * * returns: PPS size */ int v4l2core_get_h264_pps_size() { /*assertions*/ assert(vd != NULL); return vd->h264_PPS_size; } /* * get PPS data * args: * none * * asserts: * vd is not null * * returns: pointer to PPS data */ uint8_t *v4l2core_get_h264_pps() { /*assertions*/ assert(vd != NULL); return vd->h264_PPS; } /* * get SPS NALU size * args: * none * * asserts: * vd is not null * * returns: SPS size */ int v4l2core_get_h264_sps_size() { /*assertions*/ assert(vd != NULL); return vd->h264_SPS_size; } /* * get SPS data * args: * none * * asserts: * vd is not null * * returns: pointer to SPS data */ uint8_t *v4l2core_get_h264_sps() { /*assertions*/ assert(vd != NULL); return vd->h264_SPS; } /* * request a IDR frame from the H264 encoder * args: * none * * asserts: * none * * returns: none */ void v4l2core_h264_request_idr() { h264_request_idr(vd); } /* * resets the h264 encoder * args: * none * * asserts: * none * * returns: 0 on success or error code on fail */ int v4l2core_reset_h264_encoder() { return h264_reset_encoder(vd); } /* * get the video rate control mode * args: * query - query type * * asserts: * none * * returns: video rate control mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_video_rate_control_mode(uint8_t query) { return h264_get_video_rate_control_mode(vd, query); } /* * set the video rate control mode * args: * mode - rate mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_video_rate_control_mode(uint8_t mode) { return h264_set_video_rate_control_mode(vd, mode); } /* * get the temporal scale mode * args: * query - query type * * asserts: * none * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_temporal_scale_mode(uint8_t query) { return h264_get_temporal_scale_mode(vd, query); } /* * set the temporal scale mode * args: * mode - temporal scale mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_temporal_scale_mode(uint8_t mode) { return h264_set_temporal_scale_mode(vd, mode); } /* * get the spatial scale mode * args: * query - query type * * asserts: * none * * returns: temporal scale mode (FIXME: 0xff on error) */ uint8_t v4l2core_get_h264_spatial_scale_mode(uint8_t query) { return h264_get_spatial_scale_mode(vd, query); } /* * set the spatial scale mode * args: * mode - spatial scale mode * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_spatial_scale_mode(uint8_t mode) { return h264_set_spatial_scale_mode(vd, mode); } /* * query the frame rate config * args: * query - query type * * asserts: * none * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t v4l2core_query_h264_frame_rate_config(uint8_t query) { return h264_query_frame_rate_config(vd, query); } /* * get the frame rate config * args: * none * * asserts: * none * * returns: frame rate config (FIXME: 0xffffffff on error) */ uint32_t v4l2core_get_h264_frame_rate_config() { return h264_get_frame_rate_config(vd); } /* * set the frame rate config * args: * framerate - framerate * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_set_h264_frame_rate_config(uint32_t framerate) { return h264_set_frame_rate_config(vd, framerate); } /* * updates the h264_probe_commit_req field * args: * query - (UVC_GET_CUR; UVC_GET_MAX; UVC_GET_MIN) * config_probe_cur - pointer to uvcx_video_config_probe_commit_t: * if null vd->h264_config_probe_req will be used * * asserts: * none * * returns: error code ( 0 -OK) */ int v4l2core_probe_h264_config_probe_req( uint8_t query, uvcx_video_config_probe_commit_t *config_probe_req) { return h264_probe_config_probe_req(vd, query, config_probe_req); } /* * check for new devices * args: * none * * asserts: * my_device_list.udev is not null * my_device_list.udev_fd is valid (> 0) * my_device_list.udev_mon is not null * * returns: true(1) if device list was updated, false(0) otherwise */ int v4l2core_check_device_list_events() { return check_device_list_events(vd); } /* get frame format index from format list * args: * format - v4l2 pixel format * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: format list index or -1 if not available */ int v4l2core_get_frame_format_index(int format) { return get_frame_format_index(vd, format); } /* get resolution index for format index from format list * args: * format - format index from format list * width - requested width * height - requested height * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: resolution list index for format index or -1 if not available */ int v4l2core_get_format_resolution_index(int format, int width, int height) { return get_format_resolution_index(vd, format, width, height); } /* * save the device control values into a profile file * args: * filename - profile filename * * asserts: * none * * returns: error code (0 -E_OK) */ int v4l2core_save_control_profile(const char *filename) { return save_control_profile(vd, filename); } /* * load the device control values from a profile file * args: * filename - profile filename * * asserts: * vd is not null * * returns: error code (0 -E_OK) */ int v4l2core_load_control_profile(const char *filename) { return load_control_profile(vd, filename); } /* * get lenght of xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * * asserts: * none * * returns: length of xu control */ uint16_t v4l2core_get_length_xu_control(uint8_t unit, uint8_t selector) { return get_length_xu_control(vd, unit, selector); } /* * get uvc info for xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * * asserts: * none * * returns: info of xu control */ uint8_t v4l2core_get_info_xu_control(uint8_t unit, uint8_t selector) { return get_info_xu_control(vd, unit, selector); } /* * runs a query on xu control defined by unit id and selector * args: * unit - unit id of xu control * selector - selector for control * query - query type * data - pointer to query data * * asserts: * none * * returns: 0 if query succeded or errno otherwise */ int v4l2core_query_xu_control(uint8_t unit, uint8_t selector, uint8_t query, void *data) { return query_xu_control(vd, unit, selector, query, data); } guvcview-2.0.2+debian/gview_v4l2core/v4l2_core.h000066400000000000000000000116071256377215300214210ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef V4L2CORE_H #define V4L2CORE_H #include "gviewv4l2core.h" /* * video device data */ typedef struct _v4l2_dev_t { int fd; // device file descriptor char *videodevice; // video device string (default "/dev/video0)" int cap_meth; // capture method: IO_READ or IO_MMAP v4l2_stream_formats_t* list_stream_formats; //list of available stream formats int numb_formats; //list size //int current_format_index; //index of current stream format //int current_resolution_index; //index of current resolution for current format struct v4l2_capability cap; // v4l2 capability struct struct v4l2_format format; // v4l2 format struct struct v4l2_buffer buf; // v4l2 buffer struct struct v4l2_requestbuffers rb; // v4l2 request buffers struct struct v4l2_streamparm streamparm; // v4l2 stream parameters struct int requested_fmt; //requested format (may differ from format.fmt.pix.pixelformat) int fps_num; //fps numerator int fps_denom; //fps denominator uint8_t streaming; // flag device stream : STRM_STOP ; STRM_REQ_STOP; STRM_OK uint64_t frame_index; // captured frame index from 0 to max(uint64_t) void *mem[NB_BUFFER]; // memory buffers for mmap driver frames uint32_t buff_length[NB_BUFFER]; // memory buffers length as set by VIDIOC_QUERYBUF uint32_t buff_offset[NB_BUFFER]; // memory buffers offset as set by VIDIOC_QUERYBUF v4l2_frame_buff_t *frame_queue; //frame queue int frame_queue_size; //size of frame queue (in frames) uint8_t h264_unit_id; // uvc h264 unit id, if <= 0 then uvc h264 is not supported uint8_t h264_no_probe_default; // flag core to use the preset h264_config_probe_req data (don't reset to default before commit) uvcx_video_config_probe_commit_t h264_config_probe_req; //probe commit struct for h264 streams uint8_t *h264_last_IDR; // last IDR frame retrieved from uvc h264 stream int h264_last_IDR_size; // last IDR frame size uint8_t *h264_SPS; // h264 SPS info uint16_t h264_SPS_size; // SPS size uint8_t *h264_PPS; // h264 PPS info uint16_t h264_PPS_size; // PPS size int this_device; // index of this device in device list v4l2_ctrl_t* list_device_controls; //null terminated linked list of available device controls int num_controls; //number of controls in list uint8_t isbayer; //flag if we are streaming bayer data in yuyv frame (logitech only) uint8_t bayer_pix_order; //bayer pixel order int pan_step; //pan step for relative pan tilt controls (logitech sphere/orbit/BCC950) int tilt_step; //tilt step for relative pan tilt controls (logitech sphere/orbit/BCC950) int has_focus_control_id; //it's set to control id if a focus control is available (enables software autofocus) int has_pantilt_control_id; //it's set to 1 if a pan/tilt control is available uint8_t pantilt_unit_id; //logitech peripheral V3 unit id (if any) } v4l2_dev_t; #endif guvcview-2.0.2+debian/gview_v4l2core/v4l2_devices.c000066400000000000000000000301751256377215300221070ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include "gviewv4l2core.h" #include "v4l2_devices.h" #include "../config.h" extern int verbosity; /* device list structure */ static v4l2_device_list my_device_list; /* * get the device list data * args: * none * * asserts: * none * * returns: pointer to device list data */ v4l2_device_list *v4l2core_get_device_list() { return &my_device_list; } /* * free v4l2 devices list * args: * none * * asserts: * vd->list_devices is not null * * returns: void */ static void free_device_list() { /*assertions*/ assert(my_device_list.list_devices != NULL); int i=0; for(i=0;i<(my_device_list.num_devices);i++) { free(my_device_list.list_devices[i].device); free(my_device_list.list_devices[i].name); free(my_device_list.list_devices[i].driver); free(my_device_list.list_devices[i].location); } free(my_device_list.list_devices); my_device_list.list_devices = NULL; } /* * enumerate available v4l2 devices * and creates list in vd->list_devices * args: * none * * asserts: * my_device_list.udev is not null * my_device_list.list_devices is null * * returns: error code */ int enum_v4l2_devices() { struct udev_enumerate *enumerate; struct udev_list_entry *devices; struct udev_list_entry *dev_list_entry; int num_dev = 0; struct v4l2_capability v4l2_cap; my_device_list.list_devices = calloc(1, sizeof(v4l2_dev_sys_data_t)); if(my_device_list.list_devices == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_v4l2_devices): %s\n", strerror(errno)); exit(-1); } /* Create a list of the devices in the 'v4l2' subsystem. */ enumerate = udev_enumerate_new(my_device_list.udev); udev_enumerate_add_match_subsystem(enumerate, "video4linux"); udev_enumerate_scan_devices(enumerate); devices = udev_enumerate_get_list_entry(enumerate); /* * For each item enumerated, print out its information. * udev_list_entry_foreach is a macro which expands to * a loop. The loop will be executed for each member in * devices, setting dev_list_entry to a list entry * which contains the device's path in /sys. */ udev_list_entry_foreach(dev_list_entry, devices) { const char *path; /* * Get the filename of the /sys entry for the device * and create a udev_device object (dev) representing it */ path = udev_list_entry_get_name(dev_list_entry); struct udev_device *dev = udev_device_new_from_syspath(my_device_list.udev, path); /* usb_device_get_devnode() returns the path to the device node itself in /dev. */ const char *v4l2_device = udev_device_get_devnode(dev); if (verbosity > 0) printf("V4L2_CORE: Device Node Path: %s\n", v4l2_device); int fd = 0; /* open the device and query the capabilities */ if ((fd = v4l2_open(v4l2_device, O_RDWR | O_NONBLOCK, 0)) < 0) { fprintf(stderr, "V4L2_CORE: ERROR opening V4L2 interface for %s\n", v4l2_device); v4l2_close(fd); continue; /*next dir entry*/ } if (xioctl(fd, VIDIOC_QUERYCAP, &v4l2_cap) < 0) { fprintf(stderr, "V4L2_CORE: VIDIOC_QUERYCAP error: %s\n", strerror(errno)); fprintf(stderr, "V4L2_CORE: couldn't query device %s\n", v4l2_device); v4l2_close(fd); continue; /*next dir entry*/ } v4l2_close(fd); num_dev++; /* Update the device list*/ my_device_list.list_devices = realloc(my_device_list.list_devices, num_dev * sizeof(v4l2_dev_sys_data_t)); if(my_device_list.list_devices == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_v4l2_devices): %s\n", strerror(errno)); exit(-1); } my_device_list.list_devices[num_dev-1].device = strdup(v4l2_device); my_device_list.list_devices[num_dev-1].name = strdup((char *) v4l2_cap.card); my_device_list.list_devices[num_dev-1].driver = strdup((char *) v4l2_cap.driver); my_device_list.list_devices[num_dev-1].location = strdup((char *) v4l2_cap.bus_info); my_device_list.list_devices[num_dev-1].valid = 1; my_device_list.list_devices[num_dev-1].current = 0; /* The device pointed to by dev contains information about the v4l2 device. In order to get information about the USB device, get the parent device with the subsystem/devtype pair of "usb"/"usb_device". This will be several levels up the tree, but the function will find it.*/ dev = udev_device_get_parent_with_subsystem_devtype( dev, "usb", "usb_device"); if (!dev) { fprintf(stderr, "V4L2_CORE: Unable to find parent usb device."); continue; } /* From here, we can call get_sysattr_value() for each file in the device's /sys entry. The strings passed into these functions (idProduct, idVendor, serial, etc.) correspond directly to the files in the directory which represents the USB device. Note that USB strings are Unicode, UCS2 encoded, but the strings returned from udev_device_get_sysattr_value() are UTF-8 encoded. */ if (verbosity > 0) { printf(" VID/PID: %s %s\n", udev_device_get_sysattr_value(dev,"idVendor"), udev_device_get_sysattr_value(dev, "idProduct")); printf(" %s\n %s\n", udev_device_get_sysattr_value(dev,"manufacturer"), udev_device_get_sysattr_value(dev,"product")); printf(" serial: %s\n", udev_device_get_sysattr_value(dev, "serial")); printf(" busnum: %s\n", udev_device_get_sysattr_value(dev, "busnum")); printf(" devnum: %s\n", udev_device_get_sysattr_value(dev, "devnum")); } my_device_list.list_devices[num_dev-1].vendor = strtoull(udev_device_get_sysattr_value(dev,"idVendor"), NULL, 16); my_device_list.list_devices[num_dev-1].product = strtoull(udev_device_get_sysattr_value(dev, "idProduct"), NULL, 16); my_device_list.list_devices[num_dev-1].busnum = strtoull(udev_device_get_sysattr_value(dev, "busnum"), NULL, 10); my_device_list.list_devices[num_dev-1].devnum = strtoull(udev_device_get_sysattr_value(dev, "devnum"), NULL, 10); udev_device_unref(dev); } /* Free the enumerator object */ udev_enumerate_unref(enumerate); my_device_list.num_devices = num_dev; return(E_OK); } /* * Initiate the device list (with udev monitoring) * args: * none * * asserts: * none * * returns: none */ void v4l2core_init_device_list() { /* Create a udev object */ my_device_list.udev = udev_new(); /*start udev device monitoring*/ /* Set up a monitor to monitor v4l2 devices */ if(my_device_list.udev) { my_device_list.udev_mon = udev_monitor_new_from_netlink(my_device_list.udev, "udev"); udev_monitor_filter_add_match_subsystem_devtype(my_device_list.udev_mon, "video4linux", NULL); udev_monitor_enable_receiving(my_device_list.udev_mon); /* Get the file descriptor (fd) for the monitor */ my_device_list.udev_fd = udev_monitor_get_fd(my_device_list.udev_mon); enum_v4l2_devices(); } } /* * get the device index in device list * args: * videodevice - string with videodevice node (e.g: /dev/video0) * * asserts: * none * * returns: * videodevice index in device list [0 - num_devices[ or -1 on error */ int v4l2core_get_device_index(const char *videodevice) { if(my_device_list.num_devices > 0 && my_device_list.list_devices != NULL) { int dev_index = 0; for(dev_index = 0; dev_index < my_device_list.num_devices; ++dev_index) { if(strcmp(videodevice, my_device_list.list_devices[dev_index].device)==0) { my_device_list.list_devices[dev_index].current = 1; return(dev_index); } } } fprintf(stderr,"V4L2CORE: couldn't determine device (%s) list index\n", videodevice); return -1; } /* * check for new devices * args: * vd - pointer to device data (can be null) * * asserts: * my_device_list.udev is not null * my_device_list.udev_fd is valid (> 0) * my_device_list.udev_mon is not null * * returns: true(1) if device list was updated, false(0) otherwise */ int check_device_list_events(v4l2_dev_t *vd) { /*assertions*/ assert(my_device_list.udev != NULL); assert(my_device_list.udev_fd > 0); assert(my_device_list.udev_mon != NULL); fd_set fds; struct timeval tv; int ret = 0; FD_ZERO(&fds); FD_SET(my_device_list.udev_fd, &fds); tv.tv_sec = 0; tv.tv_usec = 0; ret = select(my_device_list.udev_fd+1, &fds, NULL, NULL, &tv); /* Check if our file descriptor has received data. */ if (ret > 0 && FD_ISSET(my_device_list.udev_fd, &fds)) { /* * Make the call to receive the device. * select() ensured that this will not block. */ struct udev_device *dev = udev_monitor_receive_device(my_device_list.udev_mon); if (dev) { if (verbosity > 0) { printf("V4L2_CORE: Got Device event\n"); printf(" Node: %s\n", udev_device_get_devnode(dev)); printf(" Subsystem: %s\n", udev_device_get_subsystem(dev)); printf(" Devtype: %s\n", udev_device_get_devtype(dev)); printf(" Action: %s\n", udev_device_get_action(dev)); } /*update device list*/ if(my_device_list.list_devices != NULL) free_device_list(); enum_v4l2_devices(); /*update the current device index*/ if(vd) { vd->this_device = v4l2core_get_device_index(vd->videodevice); if(vd->this_device < 0) vd->this_device = 0; if(my_device_list.list_devices) my_device_list.list_devices[vd->this_device].current = 1; } udev_device_unref(dev); return(1); } else fprintf(stderr, "V4L2_CORE: No Device from receive_device(). An error occured.\n"); } return(0); } /* * close v4l2 devices list * args: * none * * asserts: * vd->list_devices is not null * * returns: void */ void v4l2core_close_v4l2_device_list() { free_device_list(); if (my_device_list.udev) udev_unref(my_device_list.udev); } guvcview-2.0.2+debian/gview_v4l2core/v4l2_devices.h000066400000000000000000000045171256377215300221150ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef V4L2_DEVICES_H #define V4L2_DEVICES_H #include "gviewv4l2core.h" #include "v4l2_core.h" /* * enumerate available v4l2 devices * and creates list in vd->list_devices * args: * none * * asserts: * my_device_list.videodevice is not null * my_device_list.udev is valid ( > 0 ) * my_device_list.list_devices is null * * returns: error code */ int enum_v4l2_devices(); /* * check for new devices * args: * vd - pointer to device data (can be null) * * asserts: * my_device_list.udev is not null * my_device_list.udev_fd is valid (> 0) * my_device_list.udev_mon is not null * * returns: true(1) if device list was updated, false(0) otherwise */ int check_device_list_events(v4l2_dev_t *vd); #endif guvcview-2.0.2+debian/gview_v4l2core/v4l2_formats.c000066400000000000000000000543601256377215300221420ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include "gview.h" #include "v4l2_formats.h" extern int verbosity; typedef struct _v4l2_format_table_t { char fourcc[5]; /*fourcc code*/ int pixelformat; /*v4l2 pixelformat*/ } v4l2_format_table_t; static v4l2_format_table_t decoder_supported_formats[] = { { .fourcc = "YUYV", .pixelformat = V4L2_PIX_FMT_YUYV, }, { .fourcc = "MJPG", .pixelformat = V4L2_PIX_FMT_MJPEG, }, { .fourcc = "JPEG", .pixelformat = V4L2_PIX_FMT_JPEG, }, { .fourcc = "H264", .pixelformat = V4L2_PIX_FMT_H264, }, { .fourcc = "YVYU", .pixelformat = V4L2_PIX_FMT_YVYU, }, { .fourcc = "UYVY", .pixelformat = V4L2_PIX_FMT_UYVY, }, { .fourcc = "YYUV", .pixelformat = V4L2_PIX_FMT_YYUV, }, { .fourcc = "Y41P", .pixelformat = V4L2_PIX_FMT_Y41P, }, { .fourcc = "GREY", .pixelformat = V4L2_PIX_FMT_GREY, }, { .fourcc = "Y10B", .pixelformat = V4L2_PIX_FMT_Y10BPACK, }, { .fourcc = "Y16 ", .pixelformat = V4L2_PIX_FMT_Y16, }, { .fourcc = "YU12", .pixelformat = V4L2_PIX_FMT_YUV420, }, { .fourcc = "YV12", .pixelformat = V4L2_PIX_FMT_YVU420, }, { .fourcc = "NV12", .pixelformat = V4L2_PIX_FMT_NV12, }, { .fourcc = "NV21", .pixelformat = V4L2_PIX_FMT_NV21, }, { .fourcc = "NV16", .pixelformat = V4L2_PIX_FMT_NV16, }, { .fourcc = "NV61", .pixelformat = V4L2_PIX_FMT_NV61, }, { .fourcc = "S501", .pixelformat = V4L2_PIX_FMT_SPCA501, }, { .fourcc = "S505", .pixelformat = V4L2_PIX_FMT_SPCA505, }, { .fourcc = "S508", .pixelformat = V4L2_PIX_FMT_SPCA508, }, { .fourcc = "GBRG", .pixelformat = V4L2_PIX_FMT_SGBRG8, }, { .fourcc = "GRBG", .pixelformat = V4L2_PIX_FMT_SGRBG8, }, { .fourcc = "BA81", .pixelformat = V4L2_PIX_FMT_SBGGR8, }, { .fourcc = "RGGB", .pixelformat = V4L2_PIX_FMT_SRGGB8, }, { .fourcc = "RGB3", .pixelformat = V4L2_PIX_FMT_RGB24, }, { .fourcc = "BGR3", .pixelformat = V4L2_PIX_FMT_BGR24, }, /*last one (zero terminated)*/ { .fourcc = {0,0,0,0,0}, .pixelformat = 0, } }; /* Four-character-code (FOURCC) */ #ifndef v4l2_fourcc #define v4l2_fourcc(a, b, c, d)\ ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) #endif /* * get pixelformat from fourcc * args: * fourcc - fourcc code for format * * asserts: * none * * returns: v4l2 pixel format */ int v4l2core_fourcc_2_v4l2_pixelformat(const char *fourcc) { int fmt = 0; if(!fourcc || strlen(fourcc) != 4) return fmt; else fmt = v4l2_fourcc(toupper(fourcc[0]), toupper(fourcc[1]), toupper(fourcc[2]), toupper(fourcc[3])); return fmt; } /* * check pixelformat against decoder support formats * args: * pixelformat - v4l2 pixelformat * * asserts: * none * * returns: TRUE(1) if format is supported * FALSE(0) if not */ uint8_t can_decode_format(int pixelformat) { int i = 0; int sup_fmt = 0; do { sup_fmt = decoder_supported_formats[i].pixelformat; if(pixelformat == sup_fmt) return TRUE; i++; } while(sup_fmt); /*last format is always 0*/ return FALSE; } /* * check fourcc against decoder support formats * args: * fourcc - v4l2 pixelformat fourcc * * asserts: * none * * returns: TRUE(1) if format is supported * FALSE(0) if not */ //uint8_t can_decode_fourcc(const char *fourcc) //{ // if(!fourcc) // return FALSE; // if(strlen(fourcc) != 4) // return FALSE; // int i = 0; // int sup_fmt = 0; // do // { // sup_fmt = decoder_supported_formats[i].pixelformat; // if(strcmp(fourcc, decoder_supported_formats[i].fourcc) == 0 ) // return TRUE; // i++; // } // while(sup_fmt); // // return FALSE; //} /* * enumerate frame intervals (fps) * args: * vd - pointer to video device data * pixfmt - v4l2 pixel format that we want to list frame intervals for * width - video width that we want to list frame intervals for * height - video height that we want to list frame intervals for * fmtind - current index of format list * fsizeind - current index of frame size list * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_stream_formats is not null * fmtind is valid * vd->list_stream_formats->list_stream_cap is not null * fsizeind is valid * * returns 0 if enumeration succeded or errno otherwise */ static int enum_frame_intervals(v4l2_dev_t *vd, uint32_t pixfmt, uint32_t width, uint32_t height, int fmtind, int fsizeind) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(vd->list_stream_formats != NULL); assert(vd->numb_formats >= fmtind); assert(vd->list_stream_formats->list_stream_cap != NULL); assert(vd->list_stream_formats[fmtind-1].numb_res >= fsizeind); int ret=0; struct v4l2_frmivalenum fival; int list_fps=0; memset(&fival, 0, sizeof(fival)); fival.index = 0; fival.pixel_format = pixfmt; fival.width = width; fival.height = height; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = NULL; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = NULL; if(verbosity > 0) printf("\tTime interval between frame: "); while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FRAMEINTERVALS, &fival)) == 0) { fival.index++; if (fival.type == V4L2_FRMIVAL_TYPE_DISCRETE) { if(verbosity > 0) printf("%u/%u, ", fival.discrete.numerator, fival.discrete.denominator); list_fps++; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num, sizeof(int) * list_fps); if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom, sizeof(int) * list_fps); if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num[list_fps-1] = fival.discrete.numerator; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom[list_fps-1] = fival.discrete.denominator; } else if (fival.type == V4L2_FRMIVAL_TYPE_CONTINUOUS) { if(verbosity > 0) printf("{min { %u/%u } .. max { %u/%u } }, ", fival.stepwise.min.numerator, fival.stepwise.min.numerator, fival.stepwise.max.denominator, fival.stepwise.max.denominator); break; } else if (fival.type == V4L2_FRMIVAL_TYPE_STEPWISE) { if(verbosity > 0) printf("{min { %u/%u } .. max { %u/%u } / " "stepsize { %u/%u } }, ", fival.stepwise.min.numerator, fival.stepwise.min.denominator, fival.stepwise.max.numerator, fival.stepwise.max.denominator, fival.stepwise.step.numerator, fival.stepwise.step.denominator); break; } } if (list_fps==0) { vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].numb_frates = 1; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num, sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom, sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_num[0] = 1; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].framerate_denom[0] = 1; } else vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].numb_frates = list_fps; if(verbosity > 0) printf("\n"); if (ret != 0 && errno != EINVAL) { fprintf(stderr, "V4L2_CORE: (VIDIOC_ENUM_FRAMEINTERVALS) Error enumerating frame intervals\n"); return errno; } return 0; } /* * enumerate frame sizes (width and height) * args: * vd - pointer to video device data * pixfmt - v4l2 pixel format that we want to list frame sizes for * fmtind - current index of format list * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_stream_formats is not null * fmtind is valid * * returns 0 if enumeration succeded or errno otherwise */ static int enum_frame_sizes(v4l2_dev_t *vd, uint32_t pixfmt, int fmtind) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(vd->list_stream_formats != NULL); assert(vd->numb_formats >= fmtind); int ret=0; int fsizeind=0; /*index for supported sizes*/ vd->list_stream_formats[fmtind-1].list_stream_cap = NULL; struct v4l2_frmsizeenum fsize; memset(&fsize, 0, sizeof(fsize)); fsize.index = 0; fsize.pixel_format = pixfmt; while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FRAMESIZES, &fsize)) == 0) { fsize.index++; if (fsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) { if(verbosity > 0) printf("{ discrete: width = %u, height = %u }\n", fsize.discrete.width, fsize.discrete.height); fsizeind++; vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap, fsizeind * sizeof(v4l2_stream_cap_t)); assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); vd->list_stream_formats[fmtind-1].numb_res = fsizeind; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].width = fsize.discrete.width; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].height = fsize.discrete.height; ret = enum_frame_intervals(vd, pixfmt, fsize.discrete.width, fsize.discrete.height, fmtind, fsizeind); if (ret != 0) fprintf(stderr, "V4L2_CORE: Unable to enumerate frame sizes %s\n", strerror(ret)); } else if (fsize.type == V4L2_FRMSIZE_TYPE_CONTINUOUS || fsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) { if(verbosity > 0) { if(fsize.type == V4L2_FRMSIZE_TYPE_CONTINUOUS) printf("{ continuous: min { width = %u, height = %u } .. " "max { width = %u, height = %u } }\n", fsize.stepwise.min_width, fsize.stepwise.min_height, fsize.stepwise.max_width, fsize.stepwise.max_height); else printf("{ stepwise: min { width = %u, height = %u } .. " "max { width = %u, height = %u } / " "stepsize { width = %u, height = %u } }\n", fsize.stepwise.min_width, fsize.stepwise.min_height, fsize.stepwise.max_width, fsize.stepwise.max_height, fsize.stepwise.step_width, fsize.stepwise.step_height); } /*add at least min and max values*/ fsizeind++; /*min*/ vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap, fsizeind * sizeof(v4l2_stream_cap_t)); assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); vd->list_stream_formats[fmtind-1].numb_res = fsizeind; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].width = fsize.stepwise.min_width; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].height = fsize.stepwise.min_height; ret = enum_frame_intervals(vd, pixfmt, fsize.stepwise.min_width, fsize.stepwise.min_height, fmtind, fsizeind); if (ret != 0) fprintf(stderr, "V4L2_CORE: Unable to enumerate frame sizes %s\n", strerror(ret)); fsizeind++; /*max*/ vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap, fsizeind * sizeof(v4l2_stream_cap_t)); assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); vd->list_stream_formats[fmtind-1].numb_res = fsizeind; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].width = fsize.stepwise.max_width; vd->list_stream_formats[fmtind-1].list_stream_cap[fsizeind-1].height = fsize.stepwise.max_height; ret = enum_frame_intervals(vd, pixfmt, fsize.stepwise.max_width, fsize.stepwise.max_height, fmtind, fsizeind); if (ret != 0) fprintf(stderr, "V4L2_CORE: Unable to enumerate frame sizes %s\n", strerror(ret)); } else { fprintf(stderr, "V4L2_CORE: fsize.type not supported: %d\n", fsize.type); fprintf(stderr, " (Discrete: %d Continuous: %d Stepwise: %d)\n", V4L2_FRMSIZE_TYPE_DISCRETE, V4L2_FRMSIZE_TYPE_CONTINUOUS, V4L2_FRMSIZE_TYPE_STEPWISE); } } if (ret != 0 && errno != EINVAL) { fprintf(stderr, "V4L2_CORE: (VIDIOC_ENUM_FRAMESIZES) - Error enumerating frame sizes\n"); return errno; } else if ((ret != 0) && (fsizeind == 0)) { /* ------ some drivers don't enumerate frame sizes ------ */ /* negotiate with VIDIOC_TRY_FMT instead */ /*if fsizeind = 0 list_stream_cap shouldn't have been allocated*/ assert(vd->list_stream_formats[fmtind-1].list_stream_cap == NULL); fsizeind++; struct v4l2_format fmt; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.width = vd->format.fmt.pix.width; /* check defined size*/ fmt.fmt.pix.height = vd->format.fmt.pix.height; fmt.fmt.pix.pixelformat = pixfmt; fmt.fmt.pix.field = V4L2_FIELD_ANY; xioctl(vd->fd, VIDIOC_TRY_FMT, &fmt); /*use the returned values*/ int width = fmt.fmt.pix.width; int height = fmt.fmt.pix.height; if(width <= 0 || height <= 0) { printf("{ VIDIOC_TRY_FMT (invalid values): width = %u, height = %u }\n", vd->format.fmt.pix.width, vd->format.fmt.pix.height); return EINVAL; } if(verbosity > 0) { printf("{ VIDIOC_TRY_FMT : width = %u, height = %u }\n", vd->format.fmt.pix.width, vd->format.fmt.pix.height); printf("fmtind:%i fsizeind: %i\n", fmtind, fsizeind); } vd->list_stream_formats[fmtind-1].list_stream_cap = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap, sizeof(v4l2_stream_cap_t) * fsizeind); assert(vd->list_stream_formats[fmtind-1].list_stream_cap != NULL); vd->list_stream_formats[fmtind-1].numb_res=fsizeind; /*don't enumerateintervals, use a default of 1/25 fps instead*/ vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num = NULL; vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num, sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom = NULL; vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom = realloc( vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom, sizeof(int)); if(vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_intervals): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[fmtind-1].list_stream_cap[0].width = width; vd->list_stream_formats[fmtind-1].list_stream_cap[0].height = height; vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_num[0] = 1; vd->list_stream_formats[fmtind-1].list_stream_cap[0].framerate_denom[0] = 25; vd->list_stream_formats[fmtind-1].list_stream_cap[0].numb_frates = 1; } return 0; } /* * enumerate frame formats (pixelformats, resolutions and fps) * and creates list in vd->list_stream_formats * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_stream_formats is null * * returns: 0 (E_OK) if enumeration succeded or error otherwise */ int enum_frame_formats(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); assert(vd->list_stream_formats == NULL); int ret=E_OK; int fmtind=0; int valid_formats=0; /*number of valid formats found (with valid frame sizes)*/ struct v4l2_fmtdesc fmt; memset(&fmt, 0, sizeof(fmt)); fmt.index = 0; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; vd->list_stream_formats = calloc ( 1, sizeof(v4l2_stream_formats_t)); if(vd->list_stream_formats == NULL) { fprintf(stderr, "V4L2_CORE: FATAL memory allocation failure (enum_frame_formats): %s\n", strerror(errno)); exit(-1); } vd->list_stream_formats[0].list_stream_cap = NULL; while ((ret = xioctl(vd->fd, VIDIOC_ENUM_FMT, &fmt)) == 0) { uint8_t dec_support = can_decode_format(fmt.pixelformat); fmt.index++; if(verbosity > 0) { printf("{ pixelformat = '%c%c%c%c', description = '%s' }\n", fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF, fmt.description); if(!dec_support) printf(" - FORMAT NOT SUPPORTED BY DECODER -\n"); } fmtind++; vd->list_stream_formats = realloc( vd->list_stream_formats, fmtind * sizeof(v4l2_stream_formats_t)); assert(vd->list_stream_formats != NULL); vd->numb_formats = fmtind; vd->list_stream_formats[fmtind-1].dec_support = dec_support; vd->list_stream_formats[fmtind-1].format = fmt.pixelformat; snprintf(vd->list_stream_formats[fmtind-1].fourcc, 5, "%c%c%c%c", fmt.pixelformat & 0xFF, (fmt.pixelformat >> 8) & 0xFF, (fmt.pixelformat >> 16) & 0xFF, (fmt.pixelformat >> 24) & 0xFF); //enumerate frame sizes ret = enum_frame_sizes(vd, fmt.pixelformat, fmtind); if (ret != 0) fprintf( stderr, "v4L2_CORE: Unable to enumerate frame sizes :%s\n", strerror(ret)); if(dec_support && !ret) valid_formats++; /*the format can be decoded and it has valid frame sizes*/ } if (errno != EINVAL) fprintf( stderr, "v4L2_CORE: (VIDIOC_ENUM_FMT) - Error enumerating frame formats: %s\n", strerror(errno)); if(valid_formats > 0) return E_OK; else return E_DEVICE_ERR; } /* get frame format index from format list * args: * vd - pointer to video device data * format - v4l2 pixel format * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: format list index or -1 if not available */ int get_frame_format_index(v4l2_dev_t *vd, int format) { /*asserts*/ assert(vd != NULL); assert(vd->list_stream_formats != NULL); int i=0; for(i=0; inumb_formats; i++) { //printf("V4L2_CORE: requested format(%x) [%i] -> %x\n", // format, i, vd->list_stream_formats[i].format); if(format == vd->list_stream_formats[i].format) return (i); } return (-1); } /* get resolution index for format index from format list * args: * vd - pointer to video device data * format - format index from format list * width - requested width * height - requested height * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: resolution list index for format index or -1 if not available */ int get_format_resolution_index(v4l2_dev_t *vd, int format, int width, int height) { /*asserts*/ assert(vd != NULL); assert(vd->list_stream_formats != NULL); if(format >= vd->numb_formats || format < 0) { fprintf(stderr, "V4L2_CORE: [get resolution index] format index (%i) is not valid [0 - %i]\n", format, vd->numb_formats - 1); return (-1); } int i=0; for(i=0; i < vd->list_stream_formats[format].numb_res; i++) { if( width == vd->list_stream_formats[format].list_stream_cap[i].width && height == vd->list_stream_formats[format].list_stream_cap[i].height) return (i); } return (-1); } /* * free frame formats list * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: void */ void free_frame_formats(v4l2_dev_t *vd) { /*asserts*/ assert(vd != NULL); assert(vd->list_stream_formats != NULL); int i=0; int j=0; for(i=0; i < vd->numb_formats; i++) { if(vd->list_stream_formats[i].list_stream_cap != NULL) { for(j=0; j < vd->list_stream_formats[i].numb_res;j++) { if(vd->list_stream_formats[i].list_stream_cap[j].framerate_num != NULL) free(vd->list_stream_formats[i].list_stream_cap[j].framerate_num); if(vd->list_stream_formats[i].list_stream_cap[j].framerate_denom != NULL) free(vd->list_stream_formats[i].list_stream_cap[j].framerate_denom); } free(vd->list_stream_formats[i].list_stream_cap); } } free(vd->list_stream_formats); vd->list_stream_formats = NULL; } guvcview-2.0.2+debian/gview_v4l2core/v4l2_formats.h000066400000000000000000000070331256377215300221420ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef V4L2_FORMATS_H #define V4L2_FORMATS_H #include "gviewv4l2core.h" #include "v4l2_core.h" /* * check pixelformat against decoder support formats * args: * pixelformat - v4l2 pixelformat * * asserts: * none * * returns: TRUE(1) if format is supported * FALSE(0) if not */ uint8_t can_decode_format(int pixelformat); /* * check fourcc against decoder support formats * args: * fourcc - v4l2 pixelformat fourcc * * asserts: * none * * returns: TRUE(1) if format is supported * FALSE(0) if not */ //uint8_t can_decode_fourcc(const char *fourcc); /* * enumerate frame formats (pixelformats, resolutions and fps) * and creates list in vd->list_stream_formats * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * vd->list_stream_formats is null * * returns: 0 (E_OK) if enumeration succeded or error otherwise */ int enum_frame_formats(v4l2_dev_t *vd); /* get frame format index from format list * args: * vd - pointer to video device data * format - v4l2 pixel format * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: format list index or -1 if not available */ int get_frame_format_index(v4l2_dev_t *vd, int format); /* get resolution index for format index from format list * args: * vd - pointer to video device data * format - format index from format list * width - requested width * height - requested height * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: resolution list index for format index or -1 if not available */ int get_format_resolution_index(v4l2_dev_t *vd, int format, int width, int height); /* * free frame formats list * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->list_stream_formats is not null * * returns: void */ void free_frame_formats(v4l2_dev_t *vd); #endif guvcview-2.0.2+debian/gview_v4l2core/v4l2_xu_ctrls.c000066400000000000000000000332361256377215300223310ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #include #include #include #include #include #include #include #include "gview.h" #include "v4l2_xu_ctrls.h" extern int verbosity; /* * XU controls */ #define V4L2_CID_BASE_EXTCTR 0x0A046D01 #define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR #define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2 /*this should realy be replaced by V4L2_CID_FOCUS_ABSOLUTE in libwebcam*/ #define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4 #define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5 #define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70 #define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71 #define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH #define UVC_GUID_LOGITECH_VIDEO_PIPE {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x50} #define UVC_GUID_LOGITECH_MOTOR_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56} #define UVC_GUID_LOGITECH_USER_HW_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1f} #define XU_HW_CONTROL_LED1 1 #define XU_MOTORCONTROL_PANTILT_RELATIVE 1 #define XU_MOTORCONTROL_PANTILT_RESET 2 #define XU_MOTORCONTROL_FOCUS 3 #define XU_COLOR_PROCESSING_DISABLE 5 #define XU_RAW_DATA_BITS_PER_PIXEL 8 /* some Logitech webcams have pan/tilt/focus controls */ #define LENGTH_OF_XU_MAP (9) static struct uvc_menu_info led_menu_entry[4] = {{0, N_("Off")}, {1, N_("On")}, {2, N_("Blinking")}, {3, N_("Auto")}}; /* known xu control mappings */ static struct uvc_xu_control_mapping xu_mappings[] = { { .id = V4L2_CID_PAN_RELATIVE, .name = N_("Pan (relative)"), .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, .size = 16, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_INTEGER, .data_type = UVC_CTRL_DATA_TYPE_SIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_TILT_RELATIVE, .name = N_("Tilt (relative)"), .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, .selector = XU_MOTORCONTROL_PANTILT_RELATIVE, .size = 16, .offset = 16, .v4l2_type = V4L2_CTRL_TYPE_INTEGER, .data_type = UVC_CTRL_DATA_TYPE_SIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_PAN_RESET, .name = N_("Pan Reset"), .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, .selector = XU_MOTORCONTROL_PANTILT_RESET, .size = 1, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_BUTTON, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_TILT_RESET, .name = N_("Tilt Reset"), .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, .selector = XU_MOTORCONTROL_PANTILT_RESET, .size = 1, .offset = 1, .v4l2_type = V4L2_CTRL_TYPE_BUTTON, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_FOCUS_ABSOLUTE, .name = N_("Focus"), .entity = UVC_GUID_LOGITECH_MOTOR_CONTROL, .selector = XU_MOTORCONTROL_FOCUS, .size = 8, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_INTEGER, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_LED1_MODE_LOGITECH, .name = N_("LED1 Mode"), .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, .selector = XU_HW_CONTROL_LED1, .size = 8, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_MENU, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = led_menu_entry, .menu_count = 4, .reserved = {0,0,0,0} }, { .id = V4L2_CID_LED1_FREQUENCY_LOGITECH, .name = N_("LED1 Frequency"), .entity = UVC_GUID_LOGITECH_USER_HW_CONTROL, .selector = XU_HW_CONTROL_LED1, .size = 8, .offset = 16, .v4l2_type = V4L2_CTRL_TYPE_INTEGER, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_DISABLE_PROCESSING_LOGITECH, .name = N_("Disable video processing"), .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, .selector = XU_COLOR_PROCESSING_DISABLE, .size = 8, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN, .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, { .id = V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH, .name = N_("Raw bits per pixel"), .entity = UVC_GUID_LOGITECH_VIDEO_PIPE, .selector = XU_RAW_DATA_BITS_PER_PIXEL, .size = 8, .offset = 0, .v4l2_type = V4L2_CTRL_TYPE_INTEGER, .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED, .menu_info = NULL, .menu_count = 0, .reserved = {0,0,0,0} }, }; /* * get GUID unit id, if any * args: * vd - pointer to video device data * guid - 16 byte xu GUID * * asserts: * vd is not null * device_list->list_devices is not null * * returns: unit id for the matching GUID or 0 if none */ uint8_t get_guid_unit_id (v4l2_dev_t *vd, uint8_t *guid) { v4l2_device_list *my_device_list = v4l2core_get_device_list(); /*asserts*/ assert(vd != NULL); assert(my_device_list->list_devices != NULL); if(my_device_list->list_devices[vd->this_device].vendor != 0x046D) { if(verbosity > 2) printf("V4L2_CORE: not a logitech device (vendor_id=0x%4x): skiping peripheral V3 unit id check\n", my_device_list->list_devices[vd->this_device].vendor); return 0; } uint64_t busnum = my_device_list->list_devices[vd->this_device].busnum; uint64_t devnum = my_device_list->list_devices[vd->this_device].devnum; if(verbosity > 2) printf("V4L2_CORE: checking pan/tilt unit id for device %i (bus:%"PRId64" dev:%"PRId64")\n", vd->this_device, busnum, devnum); /* use libusb */ libusb_context *usb_ctx = NULL; libusb_device **device_list = NULL; libusb_device *device = NULL; ssize_t cnt; int i; uint8_t unit_id = 0;/*reset it*/ if (usb_ctx == NULL) libusb_init (&usb_ctx); cnt = libusb_get_device_list (usb_ctx, &device_list); for (i = 0; i < cnt; i++) { uint64_t dev_busnum = libusb_get_bus_number (device_list[i]); uint64_t dev_devnum = libusb_get_device_address (device_list[i]); if(verbosity > 2) printf("V4L2_CORE: (libusb) checking bus(%" PRId64 ") dev(%" PRId64 ") for device\n", dev_busnum, dev_devnum); if (busnum == dev_busnum && devnum == dev_devnum) { device = libusb_ref_device (device_list[i]); break; } } libusb_free_device_list (device_list, 1); if (device) { if(verbosity > 1) printf("V4L2_CORE: (libusb) checking for GUID unit id\n"); struct libusb_device_descriptor desc; if (libusb_get_device_descriptor (device, &desc) == 0) { for (i = 0; i < desc.bNumConfigurations; ++i) { struct libusb_config_descriptor *config = NULL; if (libusb_get_config_descriptor (device, i, &config) == 0) { int j = 0; for (j = 0; j < config->bNumInterfaces; j++) { int k = 0; for (k = 0; k < config->interface[j].num_altsetting; k++) { const struct libusb_interface_descriptor *interface; const uint8_t *ptr = NULL; interface = &config->interface[j].altsetting[k]; if (interface->bInterfaceClass != LIBUSB_CLASS_VIDEO || interface->bInterfaceSubClass != USB_VIDEO_CONTROL) continue; ptr = interface->extra; while (ptr - interface->extra + sizeof (xu_descriptor) < interface->extra_length) { xu_descriptor *desc = (xu_descriptor *) ptr; if (desc->bDescriptorType == USB_VIDEO_CONTROL_INTERFACE && desc->bDescriptorSubType == USB_VIDEO_CONTROL_XU_TYPE && memcmp (desc->guidExtensionCode, guid, 16) == 0) { unit_id = desc->bUnitID; libusb_unref_device (device); /*it's a match*/ if(verbosity > 1) printf("V4L2_CORE: (libusb) found GUID unit id %i\n", unit_id); return unit_id; } ptr += desc->bLength; } } } } else fprintf(stderr, "V4L2_CORE: (libusb) couldn't get config descriptor for configuration %i\n", i); } } else fprintf(stderr, "V4L2_CORE: (libusb) couldn't get device descriptor\n"); libusb_unref_device (device); } else fprintf(stderr, "V4L2_CORE: (libusb) couldn't get device\n"); /*no match found*/ return unit_id; } /* * tries to map available xu controls for supported devices * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 0 if enumeration succeded or errno otherwise */ int init_xu_ctrls(v4l2_dev_t *vd) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); int i=0; int err=0; /* after adding the controls, add the mapping now */ for ( i=0; i 0) printf("V4L2_CORE: mapping control for %s\n", xu_mappings[i].name); if ((err=xioctl(vd->fd, UVCIOC_CTRL_MAP, &xu_mappings[i])) < 0) { if ((errno!=EEXIST) || (errno != EACCES)) { fprintf(stderr, "V4L2_CORE: (UVCIOC_CTRL_MAP) Error: %s\n", strerror(errno)); } else if (errno == EACCES) { fprintf(stderr, "V4L2_CORE: need admin previledges for adding extension controls\n"); fprintf(stderr, "V4L2_CORE: please run 'guvcview --add_ctrls' as root (or with sudo)\n"); return (-1); } else fprintf(stderr, "V4L2_CORE: Mapping exists: %s\n", strerror(errno)); } } return err; } /* * get lenght of xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: length of xu control */ uint16_t get_length_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); uint16_t length = 0; struct uvc_xu_control_query xu_ctrl_query = { .unit = unit, .selector = selector, .query = UVC_GET_LEN, .size = sizeof(length), .data = (uint8_t *) &length }; if (xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query) < 0) { fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (GET_LEN) - Error: %s\n", strerror(errno)); return 0; } return length; } /* * get uvc info for xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: info of xu control */ uint8_t get_info_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector) { /*assertions*/ assert(vd != NULL); assert(vd->fd > 0); uint8_t info = 0; struct uvc_xu_control_query xu_ctrl_query = { .unit = unit, .selector = selector, .query = UVC_GET_INFO, .size = sizeof(info), .data = &info }; if (xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query) < 0) { fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (GET_INFO) - Error: %s\n", strerror(errno)); return 0; } return info; } /* * runs a query on xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * query - query type * data - pointer to query data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 0 if query succeded or errno otherwise */ int query_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector, uint8_t query, void *data) { int err = 0; uint16_t len = v4l2core_get_length_xu_control(unit, selector); struct uvc_xu_control_query xu_ctrl_query = { .unit = unit, .selector = selector, .query = query, .size = len, .data = (uint8_t *) data }; /*get query data*/ if ((err=xioctl(vd->fd, UVCIOC_CTRL_QUERY, &xu_ctrl_query)) < 0) { fprintf(stderr, "V4L2_CORE: UVCIOC_CTRL_QUERY (%i) - Error: %s\n", query, strerror(errno)); } return err; } guvcview-2.0.2+debian/gview_v4l2core/v4l2_xu_ctrls.h000066400000000000000000000073541256377215300223400ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef V4L2_XU_CTRLS_H #define V4L2_XU_CTRLS_H #include "gviewv4l2core.h" #include "v4l2_core.h" typedef struct { int8_t bLength; int8_t bDescriptorType; int8_t bDescriptorSubType; int8_t bUnitID; uint8_t guidExtensionCode[16]; } __attribute__ ((__packed__)) xu_descriptor; #define USB_VIDEO_CONTROL 0x01 #define USB_VIDEO_CONTROL_INTERFACE 0x24 #define USB_VIDEO_CONTROL_XU_TYPE 0x06 /* * get GUID unit id, if any * args: * vd - pointer to video device data * guid - 16 byte xu GUID * * asserts: * vd is not null * device_list->list_devices is not null * * returns: unit id for the matching GUID or 0 if none */ uint8_t get_guid_unit_id (v4l2_dev_t *vd, uint8_t *guid); /* * tries to map available xu controls for supported devices * args: * vd - pointer to video device data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 0 if map succeded or errno otherwise */ int init_xu_ctrls(v4l2_dev_t *vd); /* * get lenght of xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: length of xu control */ uint16_t get_length_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector); /* * get uvc info for xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: info of xu control */ uint8_t get_info_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector); /* * runs a query on xu control defined by unit id and selector * args: * vd - pointer to video device data * unit - unit id of xu control * selector - selector for control * query - query type * data - pointer to query data * * asserts: * vd is not null * vd->fd is valid ( > 0 ) * * returns: 0 if query succeded or errno otherwise */ int query_xu_control(v4l2_dev_t *vd, uint8_t unit, uint8_t selector, uint8_t query, void *data); #endif guvcview-2.0.2+debian/includes/000077500000000000000000000000001256377215300164115ustar00rootroot00000000000000guvcview-2.0.2+debian/includes/gview.h000077500000000000000000000073311256377215300177120ustar00rootroot00000000000000/*******************************************************************************# # guvcview http://guvcview.sourceforge.net # # # # Paulo Assis # # # # 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 2 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, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ********************************************************************************/ #ifndef GVIEW_H #define GVIEW_H #include #include #include #include /*needed fo PACKAGE definition*/ #include "../config.h" /* support for internationalization - i18n */ #ifndef _ # define _(String) dgettext (GETTEXT_PACKAGE, String) #endif #ifndef N_ # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #endif #ifndef TRUE #define TRUE (1) #endif #ifndef FALSE #define FALSE (0) #endif #define CLEAR_LINE "\x1B[K" #ifdef WORDS_BIGENDIAN #define BIGENDIAN 1 #else #define BIGENDIAN 0 #endif #ifndef NSEC_PER_SEC #define NSEC_PER_SEC 1000000000LL #endif #ifndef USEC_PER_SEC #define USEC_PER_SEC 1000000LL #endif #define ODD(x) ((x%2)?TRUE:FALSE) #define __THREAD_TYPE pthread_t #define __THREAD_CREATE(t,f,d) (pthread_create(t,NULL,f,d)) #define __THREAD_JOIN(t) (pthread_join(t, NULL)) #define __MUTEX_TYPE pthread_mutex_t #define __COND_TYPE pthread_cond_t #define __STATIC_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER #define __INIT_MUTEX(m) ( pthread_mutex_init(m, NULL) ) #define __CLOSE_MUTEX(m) ( pthread_mutex_destroy(m) ) #define __LOCK_MUTEX(m) ( pthread_mutex_lock(m) ) #define __UNLOCK_MUTEX(m) ( pthread_mutex_unlock(m) ) #define __INIT_COND(c) ( pthread_cond_init (c, NULL) ) #define __CLOSE_COND(c) ( pthread_cond_destroy(c) ) #define __COND_BCAST(c) ( pthread_cond_broadcast(c) ) #define __COND_TIMED_WAIT(c,m,t) ( pthread_cond_timedwait(c,m,t) ) /*next index of ring buffer with size elements*/ #define NEXT_IND(ind,size) ind++;if(ind>=size) ind=0 /*previous index of ring buffer with size elements*/ //#define PREV_IND(ind,size) ind--;if(ind<0) ind=size-1 typedef char* pchar; /* 0 is device default*/ static const int stdSampleRates[] = { 0, 8000, 9600, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000, -1 /* Negative terminated list. */ }; #define DHT_SIZE 432 /*clip value between 0 and 255*/ #define CLIP(value) (uint8_t)(((value)>0xFF)?0xff:(((value)<0)?0:(value))) /*MAX macro - gets the bigger value*/ #ifndef MAX #define MAX(a,b) (((a) < (b)) ? (b) : (a)) #endif #endif guvcview-2.0.2+debian/install-sh000077500000000000000000000332551256377215300166170ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: guvcview-2.0.2+debian/ltmain.sh000066400000000000000000010520301256377215300164240ustar00rootroot00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1.11" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 guvcview-2.0.2+debian/m4/000077500000000000000000000000001256377215300151235ustar00rootroot00000000000000guvcview-2.0.2+debian/m4/ChangeLog000066400000000000000000000006151256377215300166770ustar00rootroot000000000000002008-05-08 gettextize * gettext.m4: New file, from gettext-0.17. * iconv.m4: New file, from gettext-0.17. * lib-ld.m4: New file, from gettext-0.17. * lib-link.m4: New file, from gettext-0.17. * lib-prefix.m4: New file, from gettext-0.17. * nls.m4: New file, from gettext-0.17. * po.m4: New file, from gettext-0.17. * progtest.m4: New file, from gettext-0.17. guvcview-2.0.2+debian/m4/acx_pthread.m4000066400000000000000000000223741256377215300176570ustar00rootroot00000000000000dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl dnl @summary figure out how to build C programs using POSIX threads dnl dnl This macro figures out how to build C programs using POSIX threads. dnl It sets the PTHREAD_LIBS output variable to the threads library and dnl linker flags, and the PTHREAD_CFLAGS output variable to any special dnl C compiler flags that are needed. (The user can also force certain dnl compiler flags/libs to be tested by setting these environment dnl variables.) dnl dnl Also sets PTHREAD_CC to any special C compiler that is needed for dnl multi-threaded programs (defaults to the value of CC otherwise). dnl (This is necessary on AIX to use the special cc_r compiler alias.) dnl dnl NOTE: You are assumed to not only compile your program with these dnl flags, but also link it with them as well. e.g. you should link dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS dnl $LIBS dnl dnl If you are only building threads programs, you may wish to use dnl these variables in your default LIBS, CFLAGS, and CC: dnl dnl LIBS="$PTHREAD_LIBS $LIBS" dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS" dnl CC="$PTHREAD_CC" dnl dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). dnl dnl ACTION-IF-FOUND is a list of shell commands to run if a threads dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the dnl default action will define HAVE_PTHREAD. dnl dnl Please let the authors know if this macro fails on any platform, or dnl if you have any other suggestions or comments. This macro was based dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros dnl posted by Alejandro Forero Cuervo to the autoconf macro repository. dnl We are also grateful for the helpful feedback of numerous users. dnl dnl @category InstalledPackages dnl @author Steven G. Johnson dnl @version 2006-05-29 dnl @license GPLWithACException AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD guvcview-2.0.2+debian/m4/codeset.m4000066400000000000000000000013661256377215300170210ustar00rootroot00000000000000# codeset.m4 serial 2 (gettext-0.16) dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET); return !cs;], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) guvcview-2.0.2+debian/m4/gettext.m4000066400000000000000000000345701256377215300170620ustar00rootroot00000000000000# gettext.m4 serial 60 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) guvcview-2.0.2+debian/m4/glibc21.m4000066400000000000000000000014451256377215300166140ustar00rootroot00000000000000# glibc21.m4 serial 3 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) guvcview-2.0.2+debian/m4/gsl.m4000066400000000000000000000117251256377215300161600ustar00rootroot00000000000000# Configure path for the GNU Scientific Library # Christopher R. Gabriel , April 2000 AC_DEFUN([AX_PATH_GSL], [ AC_ARG_WITH(gsl-prefix,[ --with-gsl-prefix=PFX Prefix where GSL is installed (optional)], gsl_prefix="$withval", gsl_prefix="") AC_ARG_WITH(gsl-exec-prefix,[ --with-gsl-exec-prefix=PFX Exec prefix where GSL is installed (optional)], gsl_exec_prefix="$withval", gsl_exec_prefix="") AC_ARG_ENABLE(gsltest, [ --disable-gsltest Do not try to compile and run a test GSL program], , enable_gsltest=yes) if test "x${GSL_CONFIG+set}" != xset ; then if test "x$gsl_prefix" != x ; then GSL_CONFIG="$gsl_prefix/bin/gsl-config" fi if test "x$gsl_exec_prefix" != x ; then GSL_CONFIG="$gsl_exec_prefix/bin/gsl-config" fi fi AC_PATH_PROG(GSL_CONFIG, gsl-config, no) min_gsl_version=ifelse([$1], ,0.2.5,$1) AC_MSG_CHECKING(for GSL - version >= $min_gsl_version) no_gsl="" if test "$GSL_CONFIG" = "no" ; then no_gsl=yes else GSL_CFLAGS=`$GSL_CONFIG --cflags` GSL_LIBS=`$GSL_CONFIG --libs` gsl_major_version=`$GSL_CONFIG --version | \ sed 's/^\([[0-9]]*\).*/\1/'` if test "x${gsl_major_version}" = "x" ; then gsl_major_version=0 fi gsl_minor_version=`$GSL_CONFIG --version | \ sed 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\2/'` if test "x${gsl_minor_version}" = "x" ; then gsl_minor_version=0 fi gsl_micro_version=`$GSL_CONFIG --version | \ sed 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\3/'` if test "x${gsl_micro_version}" = "x" ; then gsl_micro_version=0 fi if test "x$enable_gsltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GSL_CFLAGS" LIBS="$LIBS $GSL_LIBS" rm -f conf.gsltest AC_TRY_RUN([ #include #include #include char* my_strdup (const char *str); char* my_strdup (const char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (void) { int major = 0, minor = 0, micro = 0; int n; char *tmp_version; system ("touch conf.gsltest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_gsl_version"); n = sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) ; if (n != 2 && n != 3) { printf("%s, bad version string\n", "$min_gsl_version"); exit(1); } if (($gsl_major_version > major) || (($gsl_major_version == major) && ($gsl_minor_version > minor)) || (($gsl_major_version == major) && ($gsl_minor_version == minor) && ($gsl_micro_version >= micro))) { exit(0); } else { exit(1); } } ],, no_gsl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gsl" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$GSL_CONFIG" = "no" ; then echo "*** The gsl-config script installed by GSL could not be found" echo "*** If GSL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the GSL_CONFIG environment variable to the" echo "*** full path to gsl-config." else if test -f conf.gsltest ; then : else echo "*** Could not run GSL test program, checking why..." CFLAGS="$CFLAGS $GSL_CFLAGS" LIBS="$LIBS $GSL_LIBS" AC_TRY_LINK([ #include ], [ return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GSL or finding the wrong" echo "*** version of GSL. If it is not finding GSL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GSL was incorrectly installed" echo "*** or that you have moved GSL since it was installed. In the latter case, you" echo "*** may want to edit the gsl-config script: $GSL_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi # GSL_CFLAGS="" # GSL_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) rm -f conf.gsltest ]) AU_ALIAS([AM_PATH_GSL], [AX_PATH_GSL])guvcview-2.0.2+debian/m4/iconv.m4000066400000000000000000000137531256377215300165140ustar00rootroot00000000000000# iconv.m4 serial AM6 (gettext-0.17) dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [ dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_TRY_RUN([ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) guvcview-2.0.2+debian/m4/intltool.m4000066400000000000000000000277241256377215300172450ustar00rootroot00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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 2 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, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) guvcview-2.0.2+debian/m4/lcmessage.m4000066400000000000000000000024041256377215300173300ustar00rootroot00000000000000# lcmessage.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) guvcview-2.0.2+debian/m4/lib-ld.m4000066400000000000000000000065311256377215300165350ustar00rootroot00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) guvcview-2.0.2+debian/m4/lib-link.m4000066400000000000000000000720551256377215300170770ustar00rootroot00000000000000# lib-link.m4 serial 13 (gettext-0.17) dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.54) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Autoconf >= 2.61 supports dots in --with options. define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix], [ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` LIB[]NAME[]_PREFIX="$basedir" additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) guvcview-2.0.2+debian/m4/lib-prefix.m4000066400000000000000000000150361256377215300174330ustar00rootroot00000000000000# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing dnl the basename of the libdir, either "lib" or "lib64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. The current dnl practice is that on a system supporting 32-bit and 64-bit instruction dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit dnl libraries go under $prefix/lib. We determine the compiler's default dnl mode by looking at the compiler's library search path. If at least dnl of its elements ends in /lib64 or points to a directory whose absolute dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the dnl default, namely "lib". acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ]) guvcview-2.0.2+debian/m4/libtool.m4000066400000000000000000010601111256377215300170310ustar00rootroot00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS guvcview-2.0.2+debian/m4/ltoptions.m4000066400000000000000000000300731256377215300174230ustar00rootroot00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) guvcview-2.0.2+debian/m4/ltsugar.m4000066400000000000000000000104241256377215300170470ustar00rootroot00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) guvcview-2.0.2+debian/m4/ltversion.m4000066400000000000000000000012621256377215300174130ustar00rootroot00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) guvcview-2.0.2+debian/m4/lt~obsolete.m4000066400000000000000000000137561256377215300177530ustar00rootroot00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) guvcview-2.0.2+debian/m4/nls.m4000066400000000000000000000022661256377215300161670ustar00rootroot00000000000000# nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) guvcview-2.0.2+debian/m4/po.m4000066400000000000000000000446061256377215300160150ustar00rootroot00000000000000# po.m4 serial 15 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.17]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. AC_PREREQ(2.50) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) guvcview-2.0.2+debian/missing000077500000000000000000000153301256377215300162040ustar00rootroot00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: guvcview-2.0.2+debian/pkgconfig/000077500000000000000000000000001256377215300165525ustar00rootroot00000000000000guvcview-2.0.2+debian/pkgconfig/libgviewaudio.pc.in000066400000000000000000000004421256377215300223350ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: @GVIEWAUDIO_LIBRARY_NAME@ Description: guvcview audio library. Version: @VERSION@ Libs: -L${libdir} -l@GVIEWAUDIO_LD_NAME@ Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWAUDIO_LIBRARY_NAME@ guvcview-2.0.2+debian/pkgconfig/libgviewencoder.pc.in000066400000000000000000000004511256377215300226530ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: @GVIEWENCODER_LIBRARY_NAME@ Description: guvcview encoder library. Version: @VERSION@ Libs: -L${libdir} -l@GVIEWENCODER_LD_NAME@ Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWENCODER_LIBRARY_NAME@guvcview-2.0.2+debian/pkgconfig/libgviewrender.pc.in000077500000000000000000000004461256377215300225220ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: @GVIEWRENDER_LIBRARY_NAME@ Description: guvcview render library. Version: @VERSION@ Libs: -L${libdir} -l@GVIEWRENDER_LD_NAME@ Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWRENDER_LIBRARY_NAME@ guvcview-2.0.2+debian/pkgconfig/libgviewv4l2core.pc.in000077500000000000000000000004571256377215300227050ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: @GVIEWV4L2CORE_LIBRARY_NAME@ Description: guvcview v4l2 core library. Version: @VERSION@ Libs: -L${libdir} -l@GVIEWV4L2CORE_LD_NAME@ Cflags: -I${includedir}/@PACKAGE@-@PACKAGE_RELEASE@/@GVIEWV4L2CORE_LIBRARY_NAME@ guvcview-2.0.2+debian/po/000077500000000000000000000000001256377215300152215ustar00rootroot00000000000000guvcview-2.0.2+debian/po/ChangeLog000066400000000000000000000012501256377215300167710ustar00rootroot000000000000002010-06-16 Paulo Assis *add chinese-Taiwan translation: zh_TW by Kentxchang Chang 2009-01-08 Paulo Assis * add initial turkish translation * add initial danish translation 2008-05-08 gettextize * Makefile.in.in: Upgrade to gettext-0.17. * Rules-quot: New file, from gettext-0.17. * boldquot.sed: New file, from gettext-0.17. * en@boldquot.header: New file, from gettext-0.17. * en@quot.header: New file, from gettext-0.17. * insert-header.sin: New file, from gettext-0.17. * quot.sed: New file, from gettext-0.17. * remove-potcdate.sin: New file, from gettext-0.17. guvcview-2.0.2+debian/po/Makefile.in.in000066400000000000000000000160461256377215300177020ustar00rootroot00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/po/Makevars000066400000000000000000000034721256377215300167230ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=C_ --keyword=Q_ --from-code=UTF-8 # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Paulo Assis # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = pj.assis@gmail.com # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = guvcview-2.0.2+debian/po/POTFILES.in000066400000000000000000000010211256377215300167700ustar00rootroot00000000000000#desktop file data/guvcview.desktop.in.in #appdata file data/guvcview.appdata.xml.in.in #gview_v4l2core lib gview_v4l2core/v4l2_controls.c gview_v4l2core/v4l2_xu_ctrls.c #gview_render lib #gview_audio lib #gview_encoder gview_encoder/audio_codecs.c gview_encoder/video_codecs.c #guvcview guvcview/gui_gtk3_audioctrls.c guvcview/gui_gtk3.c guvcview/gui_gtk3_callbacks.c guvcview/gui_gtk3_h264ctrls.c guvcview/gui_gtk3_menu.c guvcview/gui_gtk3_v4l2ctrls.c guvcview/gui_gtk3_videoctrls.c guvcview/options.c guvcview/video_capture.c guvcview-2.0.2+debian/po/POTFILES.skip000066400000000000000000000000671256377215300173410ustar00rootroot00000000000000data/guvcview.desktop.in data/guvcview.appdata.xml.in guvcview-2.0.2+debian/po/Rules-quot000066400000000000000000000033761256377215300172350ustar00rootroot00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header guvcview-2.0.2+debian/po/bg.po000066400000000000000000000650631256377215300161630ustar00rootroot00000000000000# Bulgarian translation for guvcview # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2012-06-06 03:33+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:235 msgid "---- Audio Filters ----" msgstr "" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr "" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 msgid "_Cancel" msgstr "" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "" #: ../guvcview/gui_gtk3.c:703 msgid "H264 Controls" msgstr "" #: ../guvcview/gui_gtk3.c:742 msgid "Video Controls" msgstr "" #: ../guvcview/gui_gtk3.c:777 msgid "Audio Controls" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 msgid "Photo file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 msgid "Video file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 msgid "Rate Control" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr "" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr "" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr "" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr "" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" guvcview-2.0.2+debian/po/boldquot.sed000066400000000000000000000003311256377215300175440ustar00rootroot00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g guvcview-2.0.2+debian/po/bs.po000066400000000000000000000673261256377215300162030ustar00rootroot00000000000000# Bosnian translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2011-06-27 19:11+0000\n" "Last-Translator: Stefan Ivanović \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:235 msgid "---- Audio Filters ----" msgstr "" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr "" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 msgid "_Cancel" msgstr "" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "GUVCVju Snimanje video zapisa" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "GUVCVjuer Kontrole" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "GUVCVjuer Kontrole" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "GUVCVjuer Kontrole" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 msgid "Photo file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 msgid "Video file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "GUVCVjuer Kontrole" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr "" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr "" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr "" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr "" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "GUVCVju greška:\n" #~ "\n" #~ "Nije moguće otvoriti uređaj" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Postarajte se da je kamera konektovana\n" #~ "i da su pravi upravljački programi instalirani." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCVju:\n" #~ "\n" #~ "UVC Kontrola dodataka" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrola dodataka je dodata na UVC drajver" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCVju greška:\n" #~ "\n" #~ "UVC kontrola dodataka" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Greška se dogodila dok sam dodavao kontrolu\n" #~ "dodataka na UVC drajver\n" #~ "Morate pokrenuti GUVCVju kao korjen ili sudo" guvcview-2.0.2+debian/po/cs.po000066400000000000000000001066031256377215300161740ustar00rootroot00000000000000# Czech translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Michal Sittek \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "Prohlížeč videa GTK UVC" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Prohlížení a zachytávání videa z linuxových uvc ovladačů" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Uživatelká nastavení" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jas" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Odstín" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Sytost" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostrost" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Komponzace podsvětlení" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Kmitočet sítě" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Odstín, Automatický" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Ostření, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ruční mód" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto. mód" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Mód priority clony" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Režim priority clony" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Úroveň černé" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Vyvážení bílé, automatické" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Vyvážit bílou" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Vyvážení červené" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Vyvážení modré" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Expozice" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Přírůstek, Automatický" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Zisk" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontální překlopení" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikální překlopení" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontální střed" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikální střed" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AKP Sytosti" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Odstranění barvy" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Barevné efekty" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Ovládání kamery" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatická korekce závěrky" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Expoziční Doba, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Expozie, Dynamická rychlost snímků" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Sledování objektu, Relativní" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Náklon, Relativní" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Sledování objektu, Reset" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Náklon, Reset" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Sledování objektu, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ohnisko, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ohnisko, Relativní" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Zaostření, Automaticky" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Přiblížení, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Přiblížení, Relativní" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Přiblížení, Nepřetržité" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Ochrana osobních údajů" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Expozive, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Expozice Auto. prorita" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Expozice (Absolutní)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Vyvážení bílé, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Vyvážení bílé" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Komponenta vyvážení bílé, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Modrá složka vyvážení bílé" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Červená složka vyvážení bílé" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Zaostření" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ohnisko (Absolutní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Vypnuto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Zapnuto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Blikání" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automaticky" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Záběr (relativní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Záběr (relativní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Reset záběru" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Obnovit" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Ostření (absolutní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Mód LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frekvence LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Zakázat zpracování videa" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bity / pxel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - bez komprese (16 bitů)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Výstup kamery:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - komprimovaný" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WM1 - windows media video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - formát MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "API audia:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Vstupní zařízení:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Vzorkovací frekvence:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Výchozí zařízení" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanály:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtry videa ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Zobrazit" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Ozvěna" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Chyba" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "zrušit" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Máte nainstalováno více než jedno zařízení pro video.\n" "Chcete zkusit další ?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Zařízení:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Zachycení videa Gucview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Ovládání obrazů" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Uživatelká nastavení" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Uživatelká nastavení" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Uživatelká nastavení" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Název souboru orazu" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Název souboru orazu" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "spustit nový" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "restart" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "nový" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "zrušit" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "Spustit nový proces nebo restartovat?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "hodnoty audio kodeku" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " fps enkodéru: \n" " (0 - použít hodnotu fps z pole)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " monotóních bodů" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "přenosová rychlost: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "velikost dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "velikost pre dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "pod cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "poslední počet prediktoru: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "velikost gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qkomprese: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qrozmazání: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "metoda me: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "rozhodnutí mb: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max B rámečků: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "počet vláken: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "hodnoty audio kodeku" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Ovládání obrazů" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "přenosová rychlost: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Rozlišení:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Ovládání obrazů" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Snímkový kmitočet" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - formát avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max B rámečků: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Reset záběru" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Vlevo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Vpravo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Dolů" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Nahoru" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bitů" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bitů" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Automatické ostření (pozvolné)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "nastavit Ostření" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Použít" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Snímkový kmitočet" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Rozlišení:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Výstup kamery:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtry videa ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Zrcadlo" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invertovat" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativ" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Kousků" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Částí" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Vypíše verzi" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Video zařízení [výchozí /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Metoda zachycení (1-mmap (výchozí) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Varování Guvcview:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "Nizké ACC - (faac)" #~ msgid "Audio" #~ msgstr "Zvuk" #~ msgid " Sound" #~ msgstr " Zvuk" #~ msgid " Show VU meter" #~ msgstr " Zobrazit metr VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Zvukové efekty ----" #~ msgid "Save File" #~ msgstr "Uložit soubor" #~ msgid "codec values" #~ msgstr "hodnoty kodeku" #~ msgid "Cap. Video" #~ msgstr "Zazn. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "Ovládání GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "ChybaGuvcview:\n" #~ "\n" #~ "Nelze otevřít zařízení" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Ujistěte se prosím, že vaše kamera je připojena,\n" #~ "a že máte nainstalován správný ovladač." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview\n" #~ "\n" #~ "Rozšířené ovládání UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Rozšířené ovládání bylo přidáno do UVC ovladače" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Chyba Guvcview\n" #~ "\n" #~ "Rozšířené ovládání UCV" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Nastala chyba při přidání rozšířeného\n" #~ "ovládání do ovladače UVC\n" #~ "Ujistěte se, že spouštíte guvcview jako root (či sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Chyba Gucview:\n" #~ "\n" #~ "Nelze nastavit platný proud videa pro gucview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Ujistěte se, že ovladač vašeho přístroje je kompatibilní s 4l2\n" #~ "a že je správně nainstalován." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze spustit minimální konfguraci" #~ msgid "Please reconnect your camera." #~ msgstr "Prosím připojte znovu kameru." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Chyba guvcview:\n" #~ "\n" #~ "Nelze zjistit funkce zařízení" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Ujistěte se, že ovladač zařízení podporuje v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Chyba guvcview:\n" #~ "\n" #~ "Chyba metody čtení" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Místo (--capture_method=1) zkuste mmap." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze alokovat Buffery" #~ msgid "Please try restarting your system." #~ msgstr "Prosím zkuste restartovat váš systém." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze založit vlákno videa" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Prosím nahlašte to na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Zobrazí ladící informace" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Ukončit po přidání kontroly rozšíření UVC (vyžaduje root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Neposílat video (pouze kontroly obrázku)" #~ msgid "Don't display a GUI" #~ msgstr "Nezobrazovat rozhraní" #~ msgid "Configuration file" #~ msgstr "Konfigurační soubor" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardwarová akcelerace (povolit(1) | zakázat(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formát pixelu(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Velikost rámce, výchozí: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval snímání v sekundách" #~ msgid "Number of Pictures to capture" #~ msgstr "Počet obrázků k zaznamenání" #~ msgid "Video File name (capture from start)" #~ msgstr "Jméno Video souboru (záznam od začátku)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Čas Video záznamu (v sekundách)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Po skončení videa ukončit guvcview" #~ msgid "Number of initial frames to skip" #~ msgstr "Počet prvních vynechaných snímků" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Zobrazit hodnotu FPS (povolit(1) | zakázat(0))" #~ msgid "Load Profile at start" #~ msgstr "Načíst profil při spuštění" #~ msgid "- local options" #~ msgstr "- místní nastavení" #~ msgid "Cap. Image" #~ msgstr "Zazn. Obraz" #~ msgid "Not enough free space left on disk" #~ msgstr "Na disku nezbývá dost volného místa" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formát Matroska" #~ msgid " Show" #~ msgstr " Zobrazit" #~ msgid "Quality:" #~ msgstr "Kvalita:" guvcview-2.0.2+debian/po/da.po000066400000000000000000000714561256377215300161620ustar00rootroot00000000000000# Danish translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Lysstyrke" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Farvetone" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Farvemætning" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Skarphed" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Baglys kompensation" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokus, auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Manuel tilstand" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto tilstand" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Forhøjelse" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Hvid balance temperatur, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Hvid balance temperatur" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Hvid balance komponent, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Hvid balance blå komponent" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Hvid balance rød komponent" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokus (absolut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 tilstand" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 frekvens" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Slå video processer fra" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Rå bits pr. pixel" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Kamera output:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - komprimeret" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Input udstyr:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanaler:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Video filtre ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr "" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 msgid "_Cancel" msgstr "" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Input udstyr:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Billed kontroller" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Billed kontroller" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "GUVCViewer kontroller" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Billed kontroller" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Billedfil navn" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Billedfil navn" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Billed kontroller" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "Billedrate:" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Opløsning:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Billed kontroller" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Billedrate:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Billedrate:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Venstre" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Højre" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Ned" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Op" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Auto fokus (fortsat)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "sæt fokus" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Billedrate:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Opløsning:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Kamera output:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Video filtre ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Spejl" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Vend" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativ" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Video udstyr at benyttet [default: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid " Sound" #~ msgstr " Lyd" #~ msgid "Save File" #~ msgstr "Gem fil" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke åbne udstyr" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke starte på minimum setup" #~ msgid "Please reconnect your camera." #~ msgstr "Vær venlig at gentilslutte dit kamera." #~ msgid "Please try restarting your system." #~ msgstr "Prøv venligst at genstarte dit system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke skabe video tråd" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Rapporter det venligst til http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Vis debug information" #~ msgid "Frame size, default: 640x480" #~ msgstr "Ramme størrelse, standard: 640x480" #~ msgid "Load Profile at start" #~ msgstr "Indlæs profil ved start" #~ msgid "- local options" #~ msgstr "- lokale valgmuligheder" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - ukomprimeret YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - ukomprimeret BMP" #~ msgid " Show" #~ msgstr " Vis" guvcview-2.0.2+debian/po/de.po000066400000000000000000001106231256377215300161540ustar00rootroot00000000000000# translation of de.po to Portuguese # translation of guvcview to German # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Paulo Assis , 2008. # # msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "GUVCView" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "UVC-Video-Betrachter in GTK" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Ein Video-Betrachter und Aufnahmewerkzeug für den Linux-UVC-Treiber" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Benutzersteuerung" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helligkeit" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Farbe" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Sättigung" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Schärfe" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Korrektur der Hintergrundbeleuchtung" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Netzfrequenz" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Farbton, automatisch" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokus, automatisch" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Händischer Modus" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatischer Modus" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Blendenautomatik-Modus" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Blendenpriorität-Modus" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Schwarzwert" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Weißabgleich, automatisch" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Weißabgleich durchführen" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Rotabgleich" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauabgleich" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichtung" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Verstärkung, automatisch" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Verstärkung" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal spiegeln" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikal spiegeln" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal zentrieren" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikal zentrieren" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatische Chrominanz-Verstärkung" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Entsättigen" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Farbeffekte" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamerasteuerung" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatische Belichtung" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtungszeit, direkt" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtung, dynamische Bildwiederholrate" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Schwenken, relativ" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Neigen, relativ" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Schwenken zurücksetzen" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Neigung zurücksetzen" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Schwenken, direkt" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokus, direkt" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokus, relativ" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokus, automatisch" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Vergrößerung, direkt" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Vergrößerung, relativ" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Vergrößerung, fortlaufend" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privatsphäre" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichtung, automatisch" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichtung, automatische Priorität" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichtung (Absolut)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatischer Weißabgleich (Temperatur)" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Weißabgleich (Temperatur)" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatischer Weißabgleich (Komponente)" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Weißabgleich (Blau)" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Weißabgleich (Rot)" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokus" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (direkt)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Aus" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "An" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Blinken" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automatisch" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Umdrehung (relativ)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Neigung (relativ)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Umdrehung (Zurückstellen)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Neigung (Zurückstellen)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokus (absolut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modus LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequenz LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Video-Verarbeitung ausschalten" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Rohe Bits pro Pixel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM – Unkomprimiert (16 Bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Farbmodell:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - komprimiert" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-Video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 – Flash-Video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 – Win.-Med.-Video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 – MPEG-2-Format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (Ogg-Theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Eingabegerät:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Samplingrate:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Standard" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanäle:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - Mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - Stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "— Video-Filter —" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Hall" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " Wah-Wah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ente" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Video stoppen (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Video aufnehmen (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Fehler" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "Abbrechen" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Sie haben mehr als ein Video-Gerät installiert\n" "Möchten Sie ein weiteres versuchen?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Eingabegerät:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "GUVCView-Video-Aufnahme" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "GUVCView" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Automatisch anhalten (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Bild aufnehmen (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Bildsteuerung" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Benutzersteuerung" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Benutzersteuerung" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Benutzersteuerung" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Profil laden" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Dateiformat:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Bilddatei" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Rohdatenbild (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "JPEG (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Bilddatei" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "beginnen neue" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "Neustart" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "Neue" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "Abbrechen" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "Neuer prozess oder programm neustarten?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "Audio-Codec-Werte" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " Kodierer Bilder/s: \n" " (0 – FPS-Wert aus Auswahlliste)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " Monoton ansteigender PTS" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "Bitrate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "DIA, Größe: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "Präd.-DIA, Größe: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "Präd.-ME: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "Präd.-CMP: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "Letzter Prädiktorzählstand: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "GOP, Größe: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "QCompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "QBlur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "Subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "FrameRefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "ME, Methode: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "MD, Entscheidung: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "Max. B-Frames: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "Anzahl Threads: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "Audio-Codec-Werte" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "Sample-Format: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Bildsteuerung" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "Bitrate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Auflösung:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Bildsteuerung" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Bildrate:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Profil speichern" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Dateiformat:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI – Avi-Format" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Max. B-Frames: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Umdrehung (Zurückstellen)" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Einstellungen" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Hardware-Standards" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Kameraknopf" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Bild aufnehmen" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Video aufnehmen" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Datei" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Dateinamen hochzählen" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Video-Codec" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Video-Codec-Eigenschaften" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Audio-Codec" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Audio-Codec-Eigenschaften" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Links" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Rechts" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Runter" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Hoch" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 Bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 Bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Automatisch Fokus (andauernd)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Fokus" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Anwenden" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Bildrate:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Auflösung:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Farbmodell:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "— Video-Filter —" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Gespiegelt" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Gedreht" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativ" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Monochrom" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Bausteine" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Partikel" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Zeigt die Version an" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Verwendetes Video-Gerät [Standard: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Aufnahmemethode (1-mmap (Vorgabe) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Profil laden" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "GUVCView-Warnung:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "Video speichern in" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 – (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 – (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 – (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Niedrig – (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Audio" #~ msgid " Show VU meter" #~ msgstr " VU-Meter anzeigen" #~ msgid "---- Audio Effects ----" #~ msgstr "— Audio-Filter —" #~ msgid "Save File" #~ msgstr "Datei speichern" #~ msgid "codec values" #~ msgstr "Codec-Werte" #~ msgid "capturing photo to" #~ msgstr "Foto speichern in" #~ msgid "Cap. Video" #~ msgstr "Video aufnehmen" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer-Bedienfeld" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Das Gerät konnte nicht geöffnet werden" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Bitte stellen Sie sicher, dass die Kamera angeschlossen wird\n" #~ "und dass die driver angebracht ist." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCView:\n" #~ "\n" #~ "Erweiterte UVC-Bedienelemente" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Erweiterte Bedienelemente wurden zum UVC-Treiber hinzugefügt" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Erweiterte UVC-Bedienelemente" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ein Fehler ist beim Hinzufügen der erweiterten\n" #~ "Bedienelemente zum UVC-Treiber aufgetreten.\n" #~ "Stellen Sie sicher, dass Sie »guvcview« als Systemverwalter\n" #~ "(Benutzer »root) ausführen oder mit »sudo«." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Es kann kein gültiger Video-Stream für guvcview festgelegt werden" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Stellen Sie bitte sicher, dass Sie sowohl eine v4l2 kompatible Kamera " #~ "besitzen als auch den Treiber geladen haben." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Es konnte nicht im minimalen Modus gestartet werden" #~ msgid "Please reconnect your camera." #~ msgstr "Bitte schließen Sie Ihre Kamera erneut an." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Geräteeigenschaften konnten nicht abgefragt werden" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Stellen Sie sicher, dass der Gerätetreiber v4l2 unterstützt." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Fehler der Lesemethode" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Bitte versuchen sie es mit mmap (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Puffer konnten nicht angelegt werden" #~ msgid "Please try restarting your system." #~ msgstr "Bitte System neu starten." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Video-Thread konnte nicht erzeugt werden" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Bitte melden Sie dies an http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (png)" #~ msgid "Displays debug information" #~ msgstr "Extra Informationen anzeigen" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Nach Hinzufügen der erweiterten UVC-Bedienelemente beenden (root/sudo " #~ "erforderlich)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Video nicht streamen (nur Bildsteuerung)" #~ msgid "Don't display a GUI" #~ msgstr "Keine grafische Benutzeroberfläche anzeigen" #~ msgid "Configuration file" #~ msgstr "Konfigurationsdatei" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardware accel. (aktivieren(1) | inaktivieren(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel-Format (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Auflösung (Standard: 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Bild aufnehmenabgelaufen (sekunden)" #~ msgid "Number of Pictures to capture" #~ msgstr "Bildquantität" #~ msgid "Video File name (capture from start)" #~ msgstr "Video-Dateiname (Aufnahme von Anfang)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video-Aufnahmedauer (Sek)" #~ msgid "Exits guvcview after closing video" #~ msgstr "GUVCView beenden, nachdem Video geschlossen wurde" #~ msgid "Number of initial frames to skip" #~ msgstr "Anzahl der am Anfang zu überspringenden Einzelbilder" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS anzeigen (aktivieren(1)|inaktivieren(0))" #~ msgid "Load Profile at start" #~ msgstr "kontrollen - Datei öffnen" #~ msgid "- local options" #~ msgstr "- lokale Wahlen" #~ msgid "Cap. Image" #~ msgstr "Bild aufnehmen" #~ msgid "Not enough free space left on disk" #~ msgstr "Nicht genügend freier Speicherplatz vorhanden" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - keine Komp. YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - keine Komp. BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV – Matroska-Format" #~ msgid "WEBM - format" #~ msgstr "WEBM-Format" #~ msgid " Show" #~ msgstr " Anzeigen" #~ msgid "Quality:" #~ msgstr "Qualität:" guvcview-2.0.2+debian/po/en@boldquot.header000066400000000000000000000024711256377215300206530ustar00rootroot00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # guvcview-2.0.2+debian/po/en@quot.header000066400000000000000000000022631256377215300200110ustar00rootroot00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # guvcview-2.0.2+debian/po/en_AU.po000066400000000000000000001066451256377215300165640ustar00rootroot00000000000000# English (Australia) translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-18 07:11+0000\n" "Last-Translator: Jackson Doak \n" "Language-Team: English (Australia) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC video viewer" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "A video viewer and capturer for the linux uvc driver" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "User Controls" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brightness" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Hue" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Sharpness" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Backlight Compensation" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Power Line Frequency" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Hue, Automatic" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focus, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Manual Mode" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto Mode" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Shutter Priority Mode" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Aperture Priority Mode" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Black Level" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "White Balance, Automatic" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Do White Balance" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Red Balance" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blue Balance" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposure" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatic" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal Flip" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertical Flip" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal Centre" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertical Centre" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Colour Killer" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Colour Effects" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Camera Controls" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Auto Exposure" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Exposure Time, Absolute" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposure, Dynamic Framerate" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Pan, Relative" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Tilt, Relative" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Pan, Reset" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Tilt, Reset" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Pan, Absolute" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focus, Absolute" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focus, Relative" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focus, Automatic" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolute" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relative" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continuous" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposure, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposure, Auto Priority" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (Absolute)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "White Balance Temperature, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "White Balance Temperature" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "White Balance Component, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "White Balance Blue Component" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "White Balance Red Component" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focus" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (Absolute)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Off" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "On" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Blinking" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Pan (relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Tilt (relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Pan Reset" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Tilt Reset" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Focus (absolute)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 Mode" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 Frequency" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Disable video processing" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bits per pixel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - uncompressed (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Camera Output:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressed" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Input Device:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Sample Rate:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Dev. Default" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Channels:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Video Filters ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Stop Video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Cap. Video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Error" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "cancel" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "You have more than one video device installed.\n" "Do you want to try another one?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Device:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview Video Capture" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Stop Auto (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cap. Image (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Image Controls" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "User Controls" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "User Controls" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "User Controls" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Load Profile" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "File Format:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Image File name" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Raw Image (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Image File name" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "start new" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "restart" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "new" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "cancel" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "launch new process or restart?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "audio codec values" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " encoder fps: \n" " (0 - use fps combobox value)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " monotonic pts" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bit rate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "last predictor count: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop size: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me method: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb decision: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max B frames: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "num threads: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "audio codec values" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "sample format: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Image Controls" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bit rate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolution:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Image Controls" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Frame Rate:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Save Profile" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "File Format:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - avi format" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max B frames: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Pan Reset" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Settings" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Hardware Defaults" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Camera Button" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Capture Image" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Capture Video" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Photo" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "File" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Increment Filename" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Video Codec" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Video Codec Properties" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Audio Codec" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Audio Codec Properties" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Left" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Right" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Down" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Up" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Auto Focus (continuous)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "set Focus" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Apply" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Frame Rate:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolution:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Camera Output:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Video Filters ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Mirror" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invert" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negative" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Pieces" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Particles" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Prints version" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Video Device to use [default: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Capture method (1-mmap (default) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Load Profile" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview Warning:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "capturing video to" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Sound" #~ msgid " Show VU meter" #~ msgstr " Show VU meter" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio Effects ----" #~ msgid "Save File" #~ msgstr "Save File" #~ msgid "codec values" #~ msgstr "codec values" #~ msgid "capturing photo to" #~ msgstr "capturing photo to" #~ msgid "Cap. Video" #~ msgstr "Cap. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Controls" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Extension controls were added to the UVC driver" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgid "Please reconnect your camera." #~ msgstr "Please reconnect your camera." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Make sure the device driver supports v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Please try mmap instead (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgid "Please try restarting your system." #~ msgstr "Please try restarting your system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Displays debug information" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Exit after adding UVC extension controls (needs root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Don't stream video (image controls only)" #~ msgid "Don't display a GUI" #~ msgstr "Don't display a GUI" #~ msgid "Configuration file" #~ msgstr "Configuration file" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardware accelaration (enable(1) | disable(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Frame size, default: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Image capture interval in seconds" #~ msgid "Number of Pictures to capture" #~ msgstr "Number of Pictures to capture" #~ msgid "Video File name (capture from start)" #~ msgstr "Video File name (capture from start)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video capture time (in seconds)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Exits guvcview after closing video" #~ msgid "Number of initial frames to skip" #~ msgstr "Number of initial frames to skip" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Show FPS value (enable(1) | disable (0))" #~ msgid "Load Profile at start" #~ msgstr "Load Profile at start" #~ msgid "- local options" #~ msgstr "- local options" #~ msgid "Cap. Image" #~ msgstr "Cap. Image" #~ msgid "Not enough free space left on disk" #~ msgstr "Not enough free space left on disk" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska format" #~ msgid "WEBM - format" #~ msgstr "WEBM - format" #~ msgid " Show" #~ msgstr " Show" #~ msgid "Quality:" #~ msgstr "Quality:" guvcview-2.0.2+debian/po/es.po000066400000000000000000001050261256377215300161740ustar00rootroot00000000000000# translation of es.po to Portuguese # translation of guvcview to Spanish # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # # msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "Reproductor video GTK UVC" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Un reproductor y capturador de vídeo para el controlador uvc de Linux" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles de usuario" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturación" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensación de retroiluminación" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frecuencia de la línea eléctrica" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridad del obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridad de la abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negros" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance de blancos, automático" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Hacer balance de blancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance de rojos" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance de azules" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposición" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Giro horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Giro vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centrado horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrado vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de croma" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Anulador de color" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de color" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de cámara" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposición automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tiempo de exposición, absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposición, tasa de fotogramas dinámica" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Enfoque, Absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Enfoque, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Enfoque, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, continuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidad" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposición, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposición, Prioridad Auto" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposición (Absoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Equilibrio blanco, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Blanco (Temp. de color)" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de color, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente Azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente Rojo" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Enfoque" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Enfoque (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Apagado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Encendido" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Parpadeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotación (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinación (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Rotación (reajuste)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Inclinación (reajuste)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frecuencia LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Parar el proceso de vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits por pixel (Raw)" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - sin compresión (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Salida de la cámara:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - comprimido" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Dispositivo de entrada:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Sample Rate:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Automático" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canales:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtros Video ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Eco" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Ruido" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Pato" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Detener vídeo (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Cap. vídeo (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Error" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Dispositivo de entrada:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Captura de vídeo Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Detener auto (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cap. imagen (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Controles de la imagen" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Controles de usuario" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Controles de usuario" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Controles de usuario" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Archivo de Imagen" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Archivo de Imagen" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "Comenzar nuevo" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "Recomenzar aplicación" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "nuevo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "nuevo proceso o recomenzar?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "valores de codec de audio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "media de bits: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmáx: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "máx. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "tamaño dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "tamaño pre dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "tamaño gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "Metodo me " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb desición " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "valores de codec de audio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Controles de la imagen" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "media de bits: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolución:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Controles de la imagen" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "FPS:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - formato avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "FPS:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Rotación (reajuste)" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Izquierda" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Derecha" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Abajo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Arriba" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Foco Automatico (continuo)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Focar" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Aplicar" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "FPS:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolución:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Salida de la cámara:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtros Video ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Espejo" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invertido" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativo" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Gris" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Pedazos" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Partículas" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Imprimir versión" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Dispositivo de video [pred: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Método de captura (1-mmap (predeterminado) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Aviso de Guvcview:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Sonido" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efectos de Audio ----" #~ msgid "Save File" #~ msgstr "Guardar Archivo" #~ msgid "codec values" #~ msgstr "valores de códecs" #~ msgid "Cap. Video" #~ msgstr "Cap. vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controles de GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudo abrir el dispositivo" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Por favor, verifique de que la cámara esté conectada\n" #~ "y que se instaló el controlador correcto." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controles de la extensión UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Los controles de extensión se añadieron al controlador de UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "Controles de extensión UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocurrió un error al añadir los controles\n" #~ "de extensión al controlador UVC\n" #~ "Asegúrese de que ejecuta guvcview como root (o sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Incapaz de establecer video stream" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Asegúrese de que tiene un controlador v4l2\n" #~ "y que está instalado." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "No se pudo iniciar con la configuración mínima" #~ msgid "Please reconnect your camera." #~ msgstr "Vuelva a conectar su cámara." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "No se pudo abrir el dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Asegúrese de que el controlador del dispositivo soporta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "error de método Read" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Intente, en vez de eso, mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudieron asignar búferes" #~ msgid "Please try restarting your system." #~ msgstr "Pruebe a reiniciar su sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudo crear hilo de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Repórtelo a http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Exhibir information de depuracion" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Salir después de añadir los controles de extensión UVC (requiere root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "No hacer streaming de vídeo (sólo controles)" #~ msgid "Don't display a GUI" #~ msgstr "No mostrar interfaz gráfica" #~ msgid "Configuration file" #~ msgstr "Archivo de configuración" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accel. del hardware (habilitar(1)|deshabil.(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Resolución (defect: 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo de captura Imagen en segundos" #~ msgid "Number of Pictures to capture" #~ msgstr "Número de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Archivo video (captura del arranque)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tiempo de la captura video (segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Salir de guvcview después de cerrar el vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Número de fotogramas iniciales a omitir" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Exhibir FPS (habilitar(1) | deshabilitar(0))" #~ msgid "Load Profile at start" #~ msgstr "Cargar perfil al inicio" #~ msgid "- local options" #~ msgstr "- opciones locales" #~ msgid "Cap. Image" #~ msgstr "Cap. imagen" #~ msgid "Not enough free space left on disk" #~ msgstr "No hay suficiente espacio libre en disco" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - s/comp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - s/comp BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formato Matroska" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Calidad:" guvcview-2.0.2+debian/po/eu.po000066400000000000000000000730571256377215300162060ustar00rootroot00000000000000# Basque translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Pablo Zubiaurre \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 #, fuzzy msgid "guvcview" msgstr "Gucview oharra:" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Distira" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrastea" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ñabardura" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Asetasuna" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Garbitasuna" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foku automatikoa" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Eskuzko modua" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modu automatikoa" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Obturadore lehentasun modua" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Beltz-maila" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Zuri-balantzea,automatikoa" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Zuri-balantzea egin" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Gorri balantzea" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Urdin balantzea" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Esposizioa" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Irabazia, Automatikoa" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Irabazia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Irauli horizontalki" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Irauli bertikalki" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:235 msgid "---- Audio Filters ----" msgstr "" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr "" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Bideoa gelditu (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Kaptura (V):" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "utzi" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "Gucview oharra:" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Kaptura (I):" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Irudi kontrolak" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Irudi kontrolak" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "GUVCViewer kontrolak" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Irudi kontrolak" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 msgid "Photo file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 msgid "Video file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "Berria hasi" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "berrabiarazi" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "berria" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "utzi" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "prozesu berria hasi edo berrabiarazi?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Irudi kontrolak" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Irudi kontrolak" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Ezkerrera" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Eskuina" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Behera" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Gora" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Fokatu" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr "" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr "" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr "" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr "" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Gucview oharra:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ez da posible gailua zabaltzea" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Ziurtatu kamera konektatua\n" #~ "eta driver-a instalatuta dagoela" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Gucview:\n" #~ "\n" #~ "UVC luzapenaren kontrolak" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Luzapen kontrolak UVC kontroladoreari gehitu zaizkio" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "UVC luzapenaren kontrolak" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da bideo-korrontea ezarri" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Mesedez,egiaztatu v4I2 kontrolatzailea duzula\n" #~ "eta instalatuta dagoela." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da konfigurazio minimoarekin abiarazi" #~ msgid "Please reconnect your camera." #~ msgstr "Mesedez, kamera berriro konektatu" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da gailua ireki" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Ziurtatu gailuaren kontrolatzaileak v4I2 eusten duela" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Irakurketametodoaren errorea" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan dira bufferrak esleitu" #~ msgid "Please try restarting your system." #~ msgstr "Mesedez saiatu sistema berrabiarazten." #~ msgid "Number of Pictures to capture" #~ msgstr "Kapturatu beharreko argazki kopurua" #~ msgid "Load Profile at start" #~ msgstr "Profila kargatu hastean" #~ msgid "- local options" #~ msgstr "-aukera lokalak" #~ msgid "Not enough free space left on disk" #~ msgstr "Ez dago leku nahikorik diskoan" guvcview-2.0.2+debian/po/fo.po000066400000000000000000000653041256377215300161750ustar00rootroot00000000000000# Faroese translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2010-08-05 18:25+0000\n" "Last-Translator: Gunleif Joensen \n" "Language-Team: Faroese \n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:235 msgid "---- Audio Filters ----" msgstr "" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr "" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 msgid "_Cancel" msgstr "" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "" #: ../guvcview/gui_gtk3.c:703 msgid "H264 Controls" msgstr "" #: ../guvcview/gui_gtk3.c:742 msgid "Video Controls" msgstr "" #: ../guvcview/gui_gtk3.c:777 msgid "Audio Controls" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 msgid "Photo file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 msgid "Video file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 msgid "Rate Control" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr "" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr "" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr "" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr "" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview villa:\n" #~ "\n" #~ "Kundi ikki lata tóleind upp" guvcview-2.0.2+debian/po/fr.po000066400000000000000000001075301256377215300161760ustar00rootroot00000000000000# translation of fr.po to Portuguese # translation of guvcview to French # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Paulo Assis , 2008. # # msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "Logiciel GTK de visualisation de vidéo UVC" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Logiciel de visualisation et de capture vidéo pour le pilote uvc Linux" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Raccourcis claviers" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Luminosité" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Teinte" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Netteté" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Correction de contre-jour" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Fréquence de rafraîchissement" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Teinte, Automatique" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Mise au Point Automatique" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Mode Manuel" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Mode Auto" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Mode Priorité Vitesse" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Mode Priorité Ouverture" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Niveau de noir" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance des blancs, Automatique" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Régler la balance des blancs" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance des rouges" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance des bleus" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposition" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatique" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Miroir horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Miroir vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centré Horizontalement" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrer verticalement" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma CAG" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Tueur de couleur" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effets de couleur" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Commande de la caméra" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposition automatique" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Temps d'exposition, Absolu" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposition, Nombre d'images par seconde dynamique" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramique, Relatif" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinaison, Relatif" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Panoramique, Remise à zéro" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinaison, Remise à zéro" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramique, Absolu" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focale, Absolu" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focale, Relatif" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focale, Automatique" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolu" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relatif" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continu" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Confidentialité" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposition, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposition, mode automatique" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposition (valeur absolue)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balance des blancs, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balance des blancs" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Balance des blancs par canal, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balance des Blancs, Canal Bleu" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balance des Blancs, Canal Rouge" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Mise au point" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Mise au point (Absolue)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Désactivé" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Activé" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Clignotement" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automatique" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotation Horizontale (valeur relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Rotation Verticale (valeur relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Rotation Horizontale (remise à zero)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Rotation Verticale (remise à zero)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Mise au Point (valeur absolue)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Mode DEL1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Fréquence DEL1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Désactiver le post-traitement vidéo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Données brutes par pixel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - non compressé (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Sortie Caméra :" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressé" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - wind. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - Mpeg video 2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MP4 - MS Mpeg 4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Périphérique d'Entrée:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Taux d'échantillonage:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Valeur par Défaut" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canaux:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stéréo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtres Vidéo ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Bruit" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Canard" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Arrêter la vidéo (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Enr. Video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Erreur" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "Annuler" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Vous avez plus d'un périphérique vidéo installé.\n" "Voulez-vous en essayer un autre ?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Périphérique d'Entrée:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Capture de vidéo Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Arrêt Automatique (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Enr. Image (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Réglages de l'image" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Raccourcis claviers" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Raccourcis claviers" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Raccourcis claviers" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Ficher Image" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Ficher Image" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "commencez nouveau" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "Redémarrer l'application" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "nouveau" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "Annuler" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "nouveau processus ou redémarrage?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "valeurs du codec audio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " encodeur ips: \n" " (0 - utilise la valeur ips de la combobox)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " Pts monotones" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bit rate : " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax : " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin : " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "qdiff max.: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "taille dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "taille pre dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sous cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "compte du dernier indicateur: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "taille gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "méthode me: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "décision mb: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "nombre max d'images B: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "nb threads: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "valeurs du codec audio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Réglages de l'image" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bit rate : " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Résolution :" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Réglages de l'image" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Fréquence d'image:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - format avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "nombre max d'images B: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Rotation Horizontale (remise à zero)" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Gauche" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Droite" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Bas" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Haut" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Mise au Point (continu)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Mise au Point" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Assigner" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Fréquence d'image:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Résolution :" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Sortie Caméra :" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtres Vidéo ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Miroir" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Inverser" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Négatif" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Monochrome" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Morceaux" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Particules" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Affiche la version" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Périphérique video (défaut: /dev/video0)" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Méthode de capture (1-mmap (par défaut) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Avertissement Guvcview :" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "AAC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Son" #~ msgid " Show VU meter" #~ msgstr " Afficher le VU-mètre" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Effets Audio ----" #~ msgid "Save File" #~ msgstr "Enregistrer le Fichier" #~ msgid "codec values" #~ msgstr "valeurs codec" #~ msgid "Cap. Video" #~ msgstr "Enr. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "Réglages GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Incapable d'accéder au périphérique" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Svp, assurez-vous que le périphérique est connecté\n" #~ "et que le pilote est installé." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview :\n" #~ "\n" #~ "Contrôles de l'extension UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Les contrôles de l'extension ont été ajoutés au pilote UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Contrôles de l'extension UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Une erreur est survenue lors de l'ajout \n" #~ "des contrôles d'extension du pilote UVC.\n" #~ "Assurez-vous d'avoir lancé guvcview \n" #~ "en tant qu'utilisateur root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erreur de Gubcview :\n" #~ "\n" #~ "Incapable de gérer le flux vidéo" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Vérifiez que vous avez un pilote compatible v4l2\n" #~ "et qu'il est correctement installé." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Incapable de démarrer avec des réglages minimum" #~ msgid "Please reconnect your camera." #~ msgstr "Veuillez rebrancher votre périphérique." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erreur de Guvcview:\n" #~ "\n" #~ "Incapable d'accéder au périphérique" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Veuillez vérifier que le driver du matériel supporte V4L2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erreur de Gubvcviewr :\n" #~ "\n" #~ "erreur de lecteure" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Veuillez essayer mmap (--capture_method=1) à la place." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erreur de Guvcview:\n" #~ "\n" #~ "Incapable d'assigner des tampons mémoires" #~ msgid "Please try restarting your system." #~ msgstr "Veuillez essayer de redémarrer votre système." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erreur de Gubcview :\n" #~ "\n" #~ "Incapable de créer le flux vidéo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Veuillez le reporter à http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Afficher information extra" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Quitter après avoir ajouter les contrôles d'extension (nécessite root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Ne pas activer le flux vidéo (seulement contrôle d'image)" #~ msgid "Don't display a GUI" #~ msgstr "Ne pas afficher d'interface graphique" #~ msgid "Configuration file" #~ msgstr "Fichier de configuration" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accel. matérielle (activer(1) | desactiver(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Format matriciel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Résolution, défaut: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval d'enr. des images (secondes)" #~ msgid "Number of Pictures to capture" #~ msgstr "Nombre d'images à enregistrer" #~ msgid "Video File name (capture from start)" #~ msgstr "Fichier video (enr. de début)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Durée de l'enr. video (secondes)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Quitte guvcview après avoir fermé la vidéo" #~ msgid "Number of initial frames to skip" #~ msgstr "Nombre d'images initiales à sauter" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Afficher img/sec (activer(1) | desactiver(0))" #~ msgid "Load Profile at start" #~ msgstr "Charger réglages personnalisés" #~ msgid "- local options" #~ msgstr "- options locales" #~ msgid "Cap. Image" #~ msgstr "Enr. Image" #~ msgid "Not enough free space left on disk" #~ msgstr "Il ne reste pas assez d'espace libre sur le disque" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV non compressé" #~ msgid "RGB - uncomp BMP" #~ msgstr "RVB - BMP non compressé" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - format Matroska" #~ msgid " Show" #~ msgstr " Afficher" #~ msgid "Quality:" #~ msgstr "Qualité:" guvcview-2.0.2+debian/po/gl.po000066400000000000000000000737261256377215300162020ustar00rootroot00000000000000# Galician translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # # FIRST AUTHOR , 2010. # Dario Villar Veres , 2010. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Dario \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ton" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturación" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Focalización" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, Automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, Automático" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo Manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo Automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negro" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance vermello" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance azul" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposición" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, Automática" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Xiro horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Xiro vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposición automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposición, Absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinación, relativo" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinación, Restabelecer" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposición, Automático" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposición, Prioridade automática" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposición (absoluto)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco(absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Saída da cámara:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Dispositivo de entrada:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Taxa de mostraxe:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canles:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 msgid "---- Audio Filters ----" msgstr "" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverberar" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Difuso" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Deter vídeo (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Cap. Video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Erro" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Dispositivo:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Capturador de vídeo GUVCView" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cap. Imaxe (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Controles de GUVCViewer" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Controles de GUVCViewer" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Controles de GUVCViewer" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Nome da imaxe" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Nome da imaxe" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "reiniciar" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "novo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "Taxa de bits: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "Tamaño do gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 msgid "Rate Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "Taxa de bits: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolution:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Controles de GUVCViewer" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Taxa de fotogramas:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Taxa de fotogramas:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Esquerda" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Dereita" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Abaixo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Arriba" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Foco automático(continuo)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Definir foco" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Aplicar" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Taxa de fotogramas:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolution:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Saída da cámara:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Espello" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Inverter" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativo" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Partículas" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Mostrar a versión" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "Son" #~ msgid " Sound" #~ msgstr " Son" #~ msgid "Save File" #~ msgstr "Gardar o ficheiro" #~ msgid "Cap. Video" #~ msgstr "Cap. Video" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non foi posíbel conectar a cámara" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Asegúrese de que a súa cámara está conectada\n" #~ "e que o controlador está correctamente instalada." #~ msgid "Please reconnect your camera." #~ msgstr "Conecte de novo a súa cámara." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non se poideron consultar as capacidades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Asegúrese de que o controlador do dispositivo soporta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Erro no método de lectura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Probe mmap no seu lugar (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non foi posíbel asignarlle memoria aos búferes" #~ msgid "Please try restarting your system." #~ msgstr "Probe reiniciando o seu sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro en GUVCView:\n" #~ "\n" #~ "Non foi posíble crear un fío de execución de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Por favor, informe do erro a http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Frame size, default: 640x480" #~ msgstr "Tamaño predeterminado do marco:640x480" #~ msgid "Cap. Image" #~ msgstr "Cap. Imaxe" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Calidade:" guvcview-2.0.2+debian/po/gview_v4l2core/000077500000000000000000000000001256377215300200625ustar00rootroot00000000000000guvcview-2.0.2+debian/po/gview_v4l2core/Makefile.in.in000066400000000000000000000161401256377215300225360ustar00rootroot00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE_V4L2CORE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po/$(GETTEXT_PACKAGE) install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT) --directory=.." srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT) --directory=.." srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: guvcview-2.0.2+debian/po/gview_v4l2core/Makevars000066400000000000000000000035251256377215300215630ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE_V4L2CORE) # These two variables depend on the location of this directory. subdir = po/gview_v4l2core top_builddir = ../.. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=C_ --keyword=Q_ --from-code=UTF-8 # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Paulo Assis # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = pj.assis@gmail.com # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = guvcview-2.0.2+debian/po/gview_v4l2core/POTFILES.in000066400000000000000000000001221256377215300216320ustar00rootroot00000000000000#gview_v4l2core lib gview_v4l2core/v4l2_controls.c gview_v4l2core/v4l2_xu_ctrls.c guvcview-2.0.2+debian/po/gview_v4l2core/bg.po000066400000000000000000000136041256377215300210160ustar00rootroot00000000000000# Bulgarian translation for guvcview # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2012-06-06 03:33+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" guvcview-2.0.2+debian/po/gview_v4l2core/bs.po000066400000000000000000000161611256377215300210330ustar00rootroot00000000000000# Bosnian translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2011-06-27 19:11+0000\n" "Last-Translator: Stefan Ivanović \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #~ msgid "Guvcview Video Capture" #~ msgstr "GUVCVju Snimanje video zapisa" #, fuzzy #~ msgid "Video Controls" #~ msgstr "GUVCVjuer Kontrole" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "GUVCVjuer Kontrole" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "GUVCVju greška:\n" #~ "\n" #~ "Nije moguće otvoriti uređaj" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Postarajte se da je kamera konektovana\n" #~ "i da su pravi upravljački programi instalirani." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCVju:\n" #~ "\n" #~ "UVC Kontrola dodataka" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrola dodataka je dodata na UVC drajver" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCVju greška:\n" #~ "\n" #~ "UVC kontrola dodataka" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Greška se dogodila dok sam dodavao kontrolu\n" #~ "dodataka na UVC drajver\n" #~ "Morate pokrenuti GUVCVju kao korjen ili sudo" guvcview-2.0.2+debian/po/gview_v4l2core/cs.po000066400000000000000000000443031256377215300210330ustar00rootroot00000000000000# Czech translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Michal Sittek \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Uživatelká nastavení" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jas" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Odstín" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Sytost" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostrost" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Komponzace podsvětlení" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Kmitočet sítě" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Odstín, Automatický" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Ostření, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ruční mód" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto. mód" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Mód priority clony" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Režim priority clony" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Úroveň černé" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Vyvážení bílé, automatické" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Vyvážit bílou" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Vyvážení červené" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Vyvážení modré" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Expozice" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Přírůstek, Automatický" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Zisk" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontální překlopení" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikální překlopení" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontální střed" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikální střed" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AKP Sytosti" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Odstranění barvy" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Barevné efekty" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Ovládání kamery" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatická korekce závěrky" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Expoziční Doba, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Expozie, Dynamická rychlost snímků" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Sledování objektu, Relativní" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Náklon, Relativní" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Sledování objektu, Reset" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Náklon, Reset" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Sledování objektu, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ohnisko, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ohnisko, Relativní" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Zaostření, Automaticky" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Přiblížení, Absolutní" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Přiblížení, Relativní" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Přiblížení, Nepřetržité" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Ochrana osobních údajů" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Expozive, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Expozice Auto. prorita" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Expozice (Absolutní)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Vyvážení bílé, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Vyvážení bílé" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Komponenta vyvážení bílé, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Modrá složka vyvážení bílé" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Červená složka vyvážení bílé" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Zaostření" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ohnisko (Absolutní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Vypnuto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Zapnuto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Blikání" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automaticky" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Záběr (relativní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Záběr (relativní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Reset záběru" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Obnovit" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Ostření (absolutní)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Mód LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frekvence LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Zakázat zpracování videa" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bity / pxel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - bez komprese (16 bitů)" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Výstup kamery:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - komprimovaný" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WM1 - windows media video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - formát MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "API audia:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Vstupní zařízení:" #~ msgid "Sample Rate:" #~ msgstr "Vzorkovací frekvence:" #~ msgid "Dev. Default" #~ msgstr "Výchozí zařízení" #~ msgid "Channels:" #~ msgstr "Kanály:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtry videa ----" #~ msgid " Echo" #~ msgstr " Zobrazit" #~ msgid " Reverb" #~ msgstr " Ozvěna" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #~ msgid "Error" #~ msgstr "Chyba" #, fuzzy #~ msgid "_Cancel" #~ msgstr "zrušit" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Máte nainstalováno více než jedno zařízení pro video.\n" #~ "Chcete zkusit další ?\n" #~ msgid "Device:" #~ msgstr "Zařízení:" #~ msgid "Guvcview Video Capture" #~ msgstr "Zachycení videa Gucview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #~ msgid "Image Controls" #~ msgstr "Ovládání obrazů" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Uživatelká nastavení" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Uživatelká nastavení" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Název souboru orazu" #, fuzzy #~ msgid "Video file name" #~ msgstr "Název souboru orazu" #~ msgid "start new" #~ msgstr "spustit nový" #~ msgid "restart" #~ msgstr "restart" #~ msgid "new" #~ msgstr "nový" #~ msgid "cancel" #~ msgstr "zrušit" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "Spustit nový proces nebo restartovat?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "hodnoty audio kodeku" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " fps enkodéru: \n" #~ " (0 - použít hodnotu fps z pole)" #~ msgid " monotonic pts" #~ msgstr " monotóních bodů" #~ msgid "bit rate: " #~ msgstr "přenosová rychlost: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "velikost dia: " #~ msgid "pre dia size: " #~ msgstr "velikost pre dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "pod cmp: " #~ msgid "last predictor count: " #~ msgstr "poslední počet prediktoru: " #~ msgid "gop size: " #~ msgstr "velikost gop: " #~ msgid "qcompress: " #~ msgstr "qkomprese: " #~ msgid "qblur: " #~ msgstr "qrozmazání: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "metoda me: " #~ msgid "mb decision: " #~ msgstr "rozhodnutí mb: " #~ msgid "max B frames: " #~ msgstr "max B rámečků: " #~ msgid "num threads: " #~ msgstr "počet vláken: " #~ msgid "audio codec values" #~ msgstr "hodnoty audio kodeku" #~ msgid "Left" #~ msgstr "Vlevo" #~ msgid "Right" #~ msgstr "Vpravo" #~ msgid "Down" #~ msgstr "Dolů" #~ msgid "Up" #~ msgstr "Nahoru" #~ msgid "8 bit" #~ msgstr "8 bitů" #~ msgid "12 bit" #~ msgstr "12 bitů" #~ msgid "Auto Focus (continuous)" #~ msgstr "Automatické ostření (pozvolné)" #~ msgid "set Focus" #~ msgstr "nastavit Ostření" #, fuzzy #~ msgid "_Apply" #~ msgstr "Použít" #~ msgid "Frame Rate:" #~ msgstr "Snímkový kmitočet" #~ msgid "Resolution:" #~ msgstr "Rozlišení:" #~ msgid "Camera Output:" #~ msgstr "Výstup kamery:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtry videa ----" #~ msgid " Mirror" #~ msgstr " Zrcadlo" #~ msgid " Invert" #~ msgstr " Invertovat" #~ msgid " Negative" #~ msgstr " Negativ" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Pieces" #~ msgstr " Kousků" #~ msgid " Particles" #~ msgstr " Částí" #, fuzzy #~ msgid "Print version" #~ msgstr "Vypíše verzi" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Video zařízení [výchozí /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Metoda zachycení (1-mmap (výchozí) 2-read)" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Varování Guvcview:" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "Prohlížeč videa GTK UVC" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Prohlížení a zachytávání videa z linuxových uvc ovladačů" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "Nizké ACC - (faac)" #~ msgid "Audio" #~ msgstr "Zvuk" #~ msgid " Sound" #~ msgstr " Zvuk" #~ msgid " Show VU meter" #~ msgstr " Zobrazit metr VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Zvukové efekty ----" #~ msgid "Save File" #~ msgstr "Uložit soubor" #~ msgid "codec values" #~ msgstr "hodnoty kodeku" #~ msgid "Cap. Video" #~ msgstr "Zazn. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "Ovládání GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "ChybaGuvcview:\n" #~ "\n" #~ "Nelze otevřít zařízení" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Ujistěte se prosím, že vaše kamera je připojena,\n" #~ "a že máte nainstalován správný ovladač." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview\n" #~ "\n" #~ "Rozšířené ovládání UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Rozšířené ovládání bylo přidáno do UVC ovladače" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Chyba Guvcview\n" #~ "\n" #~ "Rozšířené ovládání UCV" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Nastala chyba při přidání rozšířeného\n" #~ "ovládání do ovladače UVC\n" #~ "Ujistěte se, že spouštíte guvcview jako root (či sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Chyba Gucview:\n" #~ "\n" #~ "Nelze nastavit platný proud videa pro gucview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Ujistěte se, že ovladač vašeho přístroje je kompatibilní s 4l2\n" #~ "a že je správně nainstalován." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze spustit minimální konfguraci" #~ msgid "Please reconnect your camera." #~ msgstr "Prosím připojte znovu kameru." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Chyba guvcview:\n" #~ "\n" #~ "Nelze zjistit funkce zařízení" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Ujistěte se, že ovladač zařízení podporuje v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Chyba guvcview:\n" #~ "\n" #~ "Chyba metody čtení" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Místo (--capture_method=1) zkuste mmap." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze alokovat Buffery" #~ msgid "Please try restarting your system." #~ msgstr "Prosím zkuste restartovat váš systém." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Chyba Guvcview:\n" #~ "\n" #~ "Nelze založit vlákno videa" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Prosím nahlašte to na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Zobrazí ladící informace" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Ukončit po přidání kontroly rozšíření UVC (vyžaduje root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Neposílat video (pouze kontroly obrázku)" #~ msgid "Don't display a GUI" #~ msgstr "Nezobrazovat rozhraní" #~ msgid "Configuration file" #~ msgstr "Konfigurační soubor" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardwarová akcelerace (povolit(1) | zakázat(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formát pixelu(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Velikost rámce, výchozí: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval snímání v sekundách" #~ msgid "Number of Pictures to capture" #~ msgstr "Počet obrázků k zaznamenání" #~ msgid "Video File name (capture from start)" #~ msgstr "Jméno Video souboru (záznam od začátku)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Čas Video záznamu (v sekundách)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Po skončení videa ukončit guvcview" #~ msgid "Number of initial frames to skip" #~ msgstr "Počet prvních vynechaných snímků" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Zobrazit hodnotu FPS (povolit(1) | zakázat(0))" #~ msgid "Load Profile at start" #~ msgstr "Načíst profil při spuštění" #~ msgid "- local options" #~ msgstr "- místní nastavení" #~ msgid "Cap. Image" #~ msgstr "Zazn. Obraz" #~ msgid "Not enough free space left on disk" #~ msgstr "Na disku nezbývá dost volného místa" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - formát avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formát Matroska" #~ msgid " Show" #~ msgstr " Zobrazit" #~ msgid "Quality:" #~ msgstr "Kvalita:" guvcview-2.0.2+debian/po/gview_v4l2core/da.po000066400000000000000000000220461256377215300210120ustar00rootroot00000000000000# Danish translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Lysstyrke" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Farvetone" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Farvemætning" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Skarphed" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Baglys kompensation" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokus, auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Manuel tilstand" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto tilstand" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Forhøjelse" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Hvid balance temperatur, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Hvid balance temperatur" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Hvid balance komponent, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Hvid balance blå komponent" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Hvid balance rød komponent" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Auto tilstand" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokus (absolut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 tilstand" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 frekvens" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Slå video processer fra" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Rå bits pr. pixel" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Kamera output:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - komprimeret" #~ msgid "Input Device:" #~ msgstr "Input udstyr:" #~ msgid "Channels:" #~ msgstr "Kanaler:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Video filtre ----" #~ msgid "Device:" #~ msgstr "Input udstyr:" #~ msgid "Image Controls" #~ msgstr "Billed kontroller" #, fuzzy #~ msgid "Video Controls" #~ msgstr "GUVCViewer kontroller" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Billed kontroller" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Billedfil navn" #, fuzzy #~ msgid "Video file name" #~ msgstr "Billedfil navn" #~ msgid "Left" #~ msgstr "Venstre" #~ msgid "Right" #~ msgstr "Højre" #~ msgid "Down" #~ msgstr "Ned" #~ msgid "Up" #~ msgstr "Op" #~ msgid "Auto Focus (continuous)" #~ msgstr "Auto fokus (fortsat)" #~ msgid "set Focus" #~ msgstr "sæt fokus" #~ msgid "Frame Rate:" #~ msgstr "Billedrate:" #~ msgid "Resolution:" #~ msgstr "Opløsning:" #~ msgid "Camera Output:" #~ msgstr "Kamera output:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Video filtre ----" #~ msgid " Mirror" #~ msgstr " Spejl" #~ msgid " Invert" #~ msgstr " Vend" #~ msgid " Negative" #~ msgstr " Negativ" #~ msgid " Mono" #~ msgstr " Mono" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Video udstyr at benyttet [default: /dev/video0]" #~ msgid " Sound" #~ msgstr " Lyd" #~ msgid "Save File" #~ msgstr "Gem fil" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke åbne udstyr" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke starte på minimum setup" #~ msgid "Please reconnect your camera." #~ msgstr "Vær venlig at gentilslutte dit kamera." #~ msgid "Please try restarting your system." #~ msgstr "Prøv venligst at genstarte dit system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview fejl:\n" #~ "\n" #~ "Kunne ikke skabe video tråd" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Rapporter det venligst til http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Vis debug information" #~ msgid "Frame size, default: 640x480" #~ msgstr "Ramme størrelse, standard: 640x480" #~ msgid "Load Profile at start" #~ msgstr "Indlæs profil ved start" #~ msgid "- local options" #~ msgstr "- lokale valgmuligheder" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - ukomprimeret YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - ukomprimeret BMP" #~ msgid " Show" #~ msgstr " Vis" guvcview-2.0.2+debian/po/gview_v4l2core/de.po000066400000000000000000000501711256377215300210160ustar00rootroot00000000000000# translation of de.po to Portuguese # translation of guvcview to German # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Paulo Assis , 2008. # # msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Benutzersteuerung" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helligkeit" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Farbe" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Sättigung" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Schärfe" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Korrektur der Hintergrundbeleuchtung" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Netzfrequenz" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Farbton, automatisch" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokus, automatisch" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Händischer Modus" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatischer Modus" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Blendenautomatik-Modus" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Blendenpriorität-Modus" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Schwarzwert" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Weißabgleich, automatisch" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Weißabgleich durchführen" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Rotabgleich" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauabgleich" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichtung" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Verstärkung, automatisch" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Verstärkung" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal spiegeln" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikal spiegeln" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal zentrieren" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikal zentrieren" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatische Chrominanz-Verstärkung" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Entsättigen" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Farbeffekte" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamerasteuerung" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatische Belichtung" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtungszeit, direkt" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtung, dynamische Bildwiederholrate" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Schwenken, relativ" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Neigen, relativ" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Schwenken zurücksetzen" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Neigung zurücksetzen" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Schwenken, direkt" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokus, direkt" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokus, relativ" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokus, automatisch" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Vergrößerung, direkt" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Vergrößerung, relativ" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Vergrößerung, fortlaufend" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privatsphäre" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichtung, automatisch" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichtung, automatische Priorität" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichtung (Absolut)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatischer Weißabgleich (Temperatur)" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Weißabgleich (Temperatur)" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatischer Weißabgleich (Komponente)" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Weißabgleich (Blau)" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Weißabgleich (Rot)" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokus" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (direkt)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Aus" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "An" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Blinken" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automatisch" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Umdrehung (relativ)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Neigung (relativ)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Umdrehung (Zurückstellen)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Neigung (Zurückstellen)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokus (absolut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modus LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequenz LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Video-Verarbeitung ausschalten" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Rohe Bits pro Pixel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM – Unkomprimiert (16 Bit)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Farbmodell:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - komprimiert" #~ msgid "MPEG video 1" #~ msgstr "MPEG-Video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 – Flash-Video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 – Win.-Med.-Video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 – MPEG-2-Format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (Ogg-Theora)" #~ msgid "Audio API:" #~ msgstr "Audio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Eingabegerät:" #~ msgid "Sample Rate:" #~ msgstr "Samplingrate:" #~ msgid "Dev. Default" #~ msgstr "Standard" #~ msgid "Channels:" #~ msgstr "Kanäle:" #~ msgid "1 - mono" #~ msgstr "1 - Mono" #~ msgid "2 - stereo" #~ msgstr "2 - Stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "— Video-Filter —" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Hall" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " Wah-Wah" #~ msgid " Ducky" #~ msgstr " Ente" #~ msgid "Stop Video (V)" #~ msgstr "Video stoppen (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Video aufnehmen (V)" #~ msgid "Error" #~ msgstr "Fehler" #, fuzzy #~ msgid "_Cancel" #~ msgstr "Abbrechen" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Sie haben mehr als ein Video-Gerät installiert\n" #~ "Möchten Sie ein weiteres versuchen?\n" #~ msgid "Device:" #~ msgstr "Eingabegerät:" #~ msgid "Guvcview Video Capture" #~ msgstr "GUVCView-Video-Aufnahme" #, fuzzy #~ msgid "Guvcview" #~ msgstr "GUVCView" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Automatisch anhalten (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Bild aufnehmen (I)" #~ msgid "Image Controls" #~ msgstr "Bildsteuerung" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Benutzersteuerung" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Benutzersteuerung" #~ msgid "Save Profile" #~ msgstr "Profil speichern" #~ msgid "Load Profile" #~ msgstr "Profil laden" #~ msgid "File Format:" #~ msgstr "Dateiformat:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Bilddatei" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Rohdatenbild (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "JPEG (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Bilddatei" #~ msgid "start new" #~ msgstr "beginnen neue" #~ msgid "restart" #~ msgstr "Neustart" #~ msgid "new" #~ msgstr "Neue" #~ msgid "cancel" #~ msgstr "Abbrechen" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "Neuer prozess oder programm neustarten?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "Audio-Codec-Werte" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " Kodierer Bilder/s: \n" #~ " (0 – FPS-Wert aus Auswahlliste)" #~ msgid " monotonic pts" #~ msgstr " Monoton ansteigender PTS" #~ msgid "bit rate: " #~ msgstr "Bitrate: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "DIA, Größe: " #~ msgid "pre dia size: " #~ msgstr "Präd.-DIA, Größe: " #~ msgid "pre me: " #~ msgstr "Präd.-ME: " #~ msgid "pre cmp: " #~ msgstr "Präd.-CMP: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "Letzter Prädiktorzählstand: " #~ msgid "gop size: " #~ msgstr "GOP, Größe: " #~ msgid "qcompress: " #~ msgstr "QCompress: " #~ msgid "qblur: " #~ msgstr "QBlur: " #~ msgid "subq: " #~ msgstr "Subq: " #~ msgid "framerefs: " #~ msgstr "FrameRefs: " #~ msgid "me method: " #~ msgstr "ME, Methode: " #~ msgid "mb decision: " #~ msgstr "MD, Entscheidung: " #~ msgid "max B frames: " #~ msgstr "Max. B-Frames: " #~ msgid "num threads: " #~ msgstr "Anzahl Threads: " #~ msgid "audio codec values" #~ msgstr "Audio-Codec-Werte" #~ msgid "sample format: " #~ msgstr "Sample-Format: " #~ msgid "Settings" #~ msgstr "Einstellungen" #~ msgid "Hardware Defaults" #~ msgstr "Hardware-Standards" #~ msgid "Camera Button" #~ msgstr "Kameraknopf" #~ msgid "Capture Image" #~ msgstr "Bild aufnehmen" #~ msgid "Capture Video" #~ msgstr "Video aufnehmen" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "Datei" #~ msgid "Increment Filename" #~ msgstr "Dateinamen hochzählen" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Video-Codec" #~ msgid "Video Codec Properties" #~ msgstr "Video-Codec-Eigenschaften" #~ msgid "Audio Codec" #~ msgstr "Audio-Codec" #~ msgid "Audio Codec Properties" #~ msgstr "Audio-Codec-Eigenschaften" #~ msgid "Left" #~ msgstr "Links" #~ msgid "Right" #~ msgstr "Rechts" #~ msgid "Down" #~ msgstr "Runter" #~ msgid "Up" #~ msgstr "Hoch" #~ msgid "8 bit" #~ msgstr "8 Bit" #~ msgid "12 bit" #~ msgstr "12 Bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Automatisch Fokus (andauernd)" #~ msgid "set Focus" #~ msgstr "Fokus" #, fuzzy #~ msgid "_Apply" #~ msgstr "Anwenden" #~ msgid "Frame Rate:" #~ msgstr "Bildrate:" #~ msgid "Resolution:" #~ msgstr "Auflösung:" #~ msgid "Camera Output:" #~ msgstr "Farbmodell:" #~ msgid "---- Video Filters ----" #~ msgstr "— Video-Filter —" #~ msgid " Mirror" #~ msgstr " Gespiegelt" #~ msgid " Invert" #~ msgstr " Gedreht" #~ msgid " Negative" #~ msgstr " Negativ" #~ msgid " Mono" #~ msgstr " Monochrom" #~ msgid " Pieces" #~ msgstr " Bausteine" #~ msgid " Particles" #~ msgstr " Partikel" #, fuzzy #~ msgid "Print version" #~ msgstr "Zeigt die Version an" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Verwendetes Video-Gerät [Standard: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Aufnahmemethode (1-mmap (Vorgabe) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Profil laden" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "GUVCView-Warnung:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "Video speichern in" #~ msgid "guvcview" #~ msgstr "GUVCView" #~ msgid "GTK UVC video viewer" #~ msgstr "UVC-Video-Betrachter in GTK" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Ein Video-Betrachter und Aufnahmewerkzeug für den Linux-UVC-Treiber" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 – (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 – (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 – (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Niedrig – (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Audio" #~ msgid " Show VU meter" #~ msgstr " VU-Meter anzeigen" #~ msgid "---- Audio Effects ----" #~ msgstr "— Audio-Filter —" #~ msgid "Save File" #~ msgstr "Datei speichern" #~ msgid "codec values" #~ msgstr "Codec-Werte" #~ msgid "capturing photo to" #~ msgstr "Foto speichern in" #~ msgid "Cap. Video" #~ msgstr "Video aufnehmen" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer-Bedienfeld" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Das Gerät konnte nicht geöffnet werden" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Bitte stellen Sie sicher, dass die Kamera angeschlossen wird\n" #~ "und dass die driver angebracht ist." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCView:\n" #~ "\n" #~ "Erweiterte UVC-Bedienelemente" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Erweiterte Bedienelemente wurden zum UVC-Treiber hinzugefügt" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Erweiterte UVC-Bedienelemente" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ein Fehler ist beim Hinzufügen der erweiterten\n" #~ "Bedienelemente zum UVC-Treiber aufgetreten.\n" #~ "Stellen Sie sicher, dass Sie »guvcview« als Systemverwalter\n" #~ "(Benutzer »root) ausführen oder mit »sudo«." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Es kann kein gültiger Video-Stream für guvcview festgelegt werden" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Stellen Sie bitte sicher, dass Sie sowohl eine v4l2 kompatible Kamera " #~ "besitzen als auch den Treiber geladen haben." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Es konnte nicht im minimalen Modus gestartet werden" #~ msgid "Please reconnect your camera." #~ msgstr "Bitte schließen Sie Ihre Kamera erneut an." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Geräteeigenschaften konnten nicht abgefragt werden" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Stellen Sie sicher, dass der Gerätetreiber v4l2 unterstützt." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Fehler der Lesemethode" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Bitte versuchen sie es mit mmap (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Puffer konnten nicht angelegt werden" #~ msgid "Please try restarting your system." #~ msgstr "Bitte System neu starten." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "GUVCView-Fehler:\n" #~ "\n" #~ "Video-Thread konnte nicht erzeugt werden" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Bitte melden Sie dies an http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (png)" #~ msgid "Displays debug information" #~ msgstr "Extra Informationen anzeigen" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Nach Hinzufügen der erweiterten UVC-Bedienelemente beenden (root/sudo " #~ "erforderlich)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Video nicht streamen (nur Bildsteuerung)" #~ msgid "Don't display a GUI" #~ msgstr "Keine grafische Benutzeroberfläche anzeigen" #~ msgid "Configuration file" #~ msgstr "Konfigurationsdatei" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardware accel. (aktivieren(1) | inaktivieren(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel-Format (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Auflösung (Standard: 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Bild aufnehmenabgelaufen (sekunden)" #~ msgid "Number of Pictures to capture" #~ msgstr "Bildquantität" #~ msgid "Video File name (capture from start)" #~ msgstr "Video-Dateiname (Aufnahme von Anfang)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video-Aufnahmedauer (Sek)" #~ msgid "Exits guvcview after closing video" #~ msgstr "GUVCView beenden, nachdem Video geschlossen wurde" #~ msgid "Number of initial frames to skip" #~ msgstr "Anzahl der am Anfang zu überspringenden Einzelbilder" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS anzeigen (aktivieren(1)|inaktivieren(0))" #~ msgid "Load Profile at start" #~ msgstr "kontrollen - Datei öffnen" #~ msgid "- local options" #~ msgstr "- lokale Wahlen" #~ msgid "Cap. Image" #~ msgstr "Bild aufnehmen" #~ msgid "Not enough free space left on disk" #~ msgstr "Nicht genügend freier Speicherplatz vorhanden" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - keine Komp. YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - keine Komp. BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI – Avi-Format" #~ msgid "MKV - Matroska format" #~ msgstr "MKV – Matroska-Format" #~ msgid "WEBM - format" #~ msgstr "WEBM-Format" #~ msgid " Show" #~ msgstr " Anzeigen" #~ msgid "Quality:" #~ msgstr "Qualität:" guvcview-2.0.2+debian/po/gview_v4l2core/en_AU.po000066400000000000000000000462701256377215300214220ustar00rootroot00000000000000# English (Australia) translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-18 07:11+0000\n" "Last-Translator: Jackson Doak \n" "Language-Team: English (Australia) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "User Controls" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brightness" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Hue" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Sharpness" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Backlight Compensation" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Power Line Frequency" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Hue, Automatic" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focus, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Manual Mode" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Auto Mode" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Shutter Priority Mode" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Aperture Priority Mode" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Black Level" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "White Balance, Automatic" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Do White Balance" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Red Balance" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blue Balance" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposure" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatic" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontal Flip" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertical Flip" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontal Centre" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertical Centre" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Colour Killer" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Colour Effects" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Camera Controls" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Auto Exposure" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Exposure Time, Absolute" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposure, Dynamic Framerate" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Pan, Relative" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Tilt, Relative" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Pan, Reset" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Tilt, Reset" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Pan, Absolute" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focus, Absolute" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focus, Relative" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focus, Automatic" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolute" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relative" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continuous" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposure, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposure, Auto Priority" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (Absolute)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "White Balance Temperature, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "White Balance Temperature" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "White Balance Component, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "White Balance Blue Component" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "White Balance Red Component" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focus" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focus (Absolute)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Off" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "On" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Blinking" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Pan (relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Tilt (relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Pan Reset" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Tilt Reset" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Focus (absolute)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 Mode" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 Frequency" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Disable video processing" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bits per pixel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - uncompressed (16 bit)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Camera Output:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - compressed" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "Audio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Input Device:" #~ msgid "Sample Rate:" #~ msgstr "Sample Rate:" #~ msgid "Dev. Default" #~ msgstr "Dev. Default" #~ msgid "Channels:" #~ msgstr "Channels:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Video Filters ----" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #~ msgid "Stop Video (V)" #~ msgstr "Stop Video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Cap. Video (V)" #~ msgid "Error" #~ msgstr "Error" #, fuzzy #~ msgid "_Cancel" #~ msgstr "cancel" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one?\n" #~ msgid "Device:" #~ msgstr "Device:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview Video Capture" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Stop Auto (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Cap. Image (I)" #~ msgid "Image Controls" #~ msgstr "Image Controls" #, fuzzy #~ msgid "Video Controls" #~ msgstr "User Controls" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "User Controls" #~ msgid "Save Profile" #~ msgstr "Save Profile" #~ msgid "Load Profile" #~ msgstr "Load Profile" #~ msgid "File Format:" #~ msgstr "File Format:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Image File name" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Raw Image (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Image File name" #~ msgid "start new" #~ msgstr "start new" #~ msgid "restart" #~ msgstr "restart" #~ msgid "new" #~ msgstr "new" #~ msgid "cancel" #~ msgstr "cancel" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "launch new process or restart?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "audio codec values" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgid " monotonic pts" #~ msgstr " monotonic pts" #~ msgid "bit rate: " #~ msgstr "bit rate: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "dia size: " #~ msgid "pre dia size: " #~ msgstr "pre dia size: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "last predictor count: " #~ msgid "gop size: " #~ msgstr "gop size: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me method: " #~ msgid "mb decision: " #~ msgstr "mb decision: " #~ msgid "max B frames: " #~ msgstr "max B frames: " #~ msgid "num threads: " #~ msgstr "num threads: " #~ msgid "audio codec values" #~ msgstr "audio codec values" #~ msgid "sample format: " #~ msgstr "sample format: " #~ msgid "Settings" #~ msgstr "Settings" #~ msgid "Hardware Defaults" #~ msgstr "Hardware Defaults" #~ msgid "Camera Button" #~ msgstr "Camera Button" #~ msgid "Capture Image" #~ msgstr "Capture Image" #~ msgid "Capture Video" #~ msgstr "Capture Video" #~ msgid "Photo" #~ msgstr "Photo" #~ msgid "File" #~ msgstr "File" #~ msgid "Increment Filename" #~ msgstr "Increment Filename" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Video Codec" #~ msgid "Video Codec Properties" #~ msgstr "Video Codec Properties" #~ msgid "Audio Codec" #~ msgstr "Audio Codec" #~ msgid "Audio Codec Properties" #~ msgstr "Audio Codec Properties" #~ msgid "Left" #~ msgstr "Left" #~ msgid "Right" #~ msgstr "Right" #~ msgid "Down" #~ msgstr "Down" #~ msgid "Up" #~ msgstr "Up" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Auto Focus (continuous)" #~ msgid "set Focus" #~ msgstr "set Focus" #, fuzzy #~ msgid "_Apply" #~ msgstr "Apply" #~ msgid "Frame Rate:" #~ msgstr "Frame Rate:" #~ msgid "Resolution:" #~ msgstr "Resolution:" #~ msgid "Camera Output:" #~ msgstr "Camera Output:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Video Filters ----" #~ msgid " Mirror" #~ msgstr " Mirror" #~ msgid " Invert" #~ msgstr " Invert" #~ msgid " Negative" #~ msgstr " Negative" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Pieces" #~ msgstr " Pieces" #~ msgid " Particles" #~ msgstr " Particles" #, fuzzy #~ msgid "Print version" #~ msgstr "Prints version" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Video Device to use [default: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Capture method (1-mmap (default) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Load Profile" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview Warning:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "capturing video to" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC video viewer" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "A video viewer and capturer for the linux uvc driver" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Sound" #~ msgid " Show VU meter" #~ msgstr " Show VU meter" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio Effects ----" #~ msgid "Save File" #~ msgstr "Save File" #~ msgid "codec values" #~ msgstr "codec values" #~ msgid "capturing photo to" #~ msgstr "capturing photo to" #~ msgid "Cap. Video" #~ msgstr "Cap. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Controls" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Extension controls were added to the UVC driver" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgid "Please reconnect your camera." #~ msgstr "Please reconnect your camera." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Make sure the device driver supports v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Please try mmap instead (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgid "Please try restarting your system." #~ msgstr "Please try restarting your system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Displays debug information" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Exit after adding UVC extension controls (needs root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Don't stream video (image controls only)" #~ msgid "Don't display a GUI" #~ msgstr "Don't display a GUI" #~ msgid "Configuration file" #~ msgstr "Configuration file" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardware accelaration (enable(1) | disable(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Frame size, default: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Image capture interval in seconds" #~ msgid "Number of Pictures to capture" #~ msgstr "Number of Pictures to capture" #~ msgid "Video File name (capture from start)" #~ msgstr "Video File name (capture from start)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video capture time (in seconds)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Exits guvcview after closing video" #~ msgid "Number of initial frames to skip" #~ msgstr "Number of initial frames to skip" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Show FPS value (enable(1) | disable (0))" #~ msgid "Load Profile at start" #~ msgstr "Load Profile at start" #~ msgid "- local options" #~ msgstr "- local options" #~ msgid "Cap. Image" #~ msgstr "Cap. Image" #~ msgid "Not enough free space left on disk" #~ msgstr "Not enough free space left on disk" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - avi format" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska format" #~ msgid "WEBM - format" #~ msgstr "WEBM - format" #~ msgid " Show" #~ msgstr " Show" #~ msgid "Quality:" #~ msgstr "Quality:" guvcview-2.0.2+debian/po/gview_v4l2core/es.po000066400000000000000000000416161256377215300210410ustar00rootroot00000000000000# translation of es.po to Portuguese # translation of guvcview to Spanish # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # # msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles de usuario" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturación" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensación de retroiluminación" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frecuencia de la línea eléctrica" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridad del obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridad de la abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negros" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance de blancos, automático" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Hacer balance de blancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance de rojos" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance de azules" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposición" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Giro horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Giro vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centrado horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrado vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de croma" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Anulador de color" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de color" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de cámara" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposición automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tiempo de exposición, absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposición, tasa de fotogramas dinámica" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Enfoque, Absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Enfoque, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Enfoque, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, continuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidad" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposición, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposición, Prioridad Auto" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposición (Absoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Equilibrio blanco, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Blanco (Temp. de color)" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de color, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente Azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente Rojo" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Enfoque" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Enfoque (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Apagado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Encendido" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Parpadeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotación (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinación (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Rotación (reajuste)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Inclinación (reajuste)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frecuencia LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Parar el proceso de vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits por pixel (Raw)" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - sin compresión (16 bit)" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Salida de la cámara:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - comprimido" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "Audio API" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Dispositivo de entrada:" #~ msgid "Sample Rate:" #~ msgstr "Sample Rate:" #~ msgid "Dev. Default" #~ msgstr "Automático" #~ msgid "Channels:" #~ msgstr "Canales:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtros Video ----" #~ msgid " Echo" #~ msgstr " Eco" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Ruido" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Pato" #~ msgid "Stop Video (V)" #~ msgstr "Detener vídeo (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Cap. vídeo (V)" #~ msgid "Error" #~ msgstr "Error" #, fuzzy #~ msgid "_Cancel" #~ msgstr "cancelar" #~ msgid "Device:" #~ msgstr "Dispositivo de entrada:" #~ msgid "Guvcview Video Capture" #~ msgstr "Captura de vídeo Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Detener auto (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Cap. imagen (I)" #~ msgid "Image Controls" #~ msgstr "Controles de la imagen" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Controles de usuario" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Controles de usuario" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Archivo de Imagen" #, fuzzy #~ msgid "Video file name" #~ msgstr "Archivo de Imagen" #~ msgid "start new" #~ msgstr "Comenzar nuevo" #~ msgid "restart" #~ msgstr "Recomenzar aplicación" #~ msgid "new" #~ msgstr "nuevo" #~ msgid "cancel" #~ msgstr "cancelar" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "nuevo proceso o recomenzar?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "valores de codec de audio" #~ msgid "bit rate: " #~ msgstr "media de bits: " #~ msgid "qmax: " #~ msgstr "qmáx: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "máx. qdiff: " #~ msgid "dia size: " #~ msgstr "tamaño dia: " #~ msgid "pre dia size: " #~ msgstr "tamaño pre dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "gop size: " #~ msgstr "tamaño gop: " #~ msgid "me method: " #~ msgstr "Metodo me " #~ msgid "mb decision: " #~ msgstr "mb desición " #~ msgid "audio codec values" #~ msgstr "valores de codec de audio" #~ msgid "Left" #~ msgstr "Izquierda" #~ msgid "Right" #~ msgstr "Derecha" #~ msgid "Down" #~ msgstr "Abajo" #~ msgid "Up" #~ msgstr "Arriba" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Foco Automatico (continuo)" #~ msgid "set Focus" #~ msgstr "Focar" #, fuzzy #~ msgid "_Apply" #~ msgstr "Aplicar" #~ msgid "Frame Rate:" #~ msgstr "FPS:" #~ msgid "Resolution:" #~ msgstr "Resolución:" #~ msgid "Camera Output:" #~ msgstr "Salida de la cámara:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtros Video ----" #~ msgid " Mirror" #~ msgstr " Espejo" #~ msgid " Invert" #~ msgstr " Invertido" #~ msgid " Negative" #~ msgstr " Negativo" #~ msgid " Mono" #~ msgstr " Gris" #~ msgid " Pieces" #~ msgstr " Pedazos" #~ msgid " Particles" #~ msgstr " Partículas" #, fuzzy #~ msgid "Print version" #~ msgstr "Imprimir versión" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Dispositivo de video [pred: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Método de captura (1-mmap (predeterminado) 2-read)" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Aviso de Guvcview:" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "Reproductor video GTK UVC" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "" #~ "Un reproductor y capturador de vídeo para el controlador uvc de Linux" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Sonido" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efectos de Audio ----" #~ msgid "Save File" #~ msgstr "Guardar Archivo" #~ msgid "codec values" #~ msgstr "valores de códecs" #~ msgid "Cap. Video" #~ msgstr "Cap. vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controles de GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudo abrir el dispositivo" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Por favor, verifique de que la cámara esté conectada\n" #~ "y que se instaló el controlador correcto." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controles de la extensión UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Los controles de extensión se añadieron al controlador de UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "Controles de extensión UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocurrió un error al añadir los controles\n" #~ "de extensión al controlador UVC\n" #~ "Asegúrese de que ejecuta guvcview como root (o sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Incapaz de establecer video stream" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Asegúrese de que tiene un controlador v4l2\n" #~ "y que está instalado." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "No se pudo iniciar con la configuración mínima" #~ msgid "Please reconnect your camera." #~ msgstr "Vuelva a conectar su cámara." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "No se pudo abrir el dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Asegúrese de que el controlador del dispositivo soporta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "error de método Read" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Intente, en vez de eso, mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudieron asignar búferes" #~ msgid "Please try restarting your system." #~ msgstr "Pruebe a reiniciar su sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Error de Guvcview:\n" #~ "\n" #~ "No se pudo crear hilo de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Repórtelo a http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Exhibir information de depuracion" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Salir después de añadir los controles de extensión UVC (requiere root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "No hacer streaming de vídeo (sólo controles)" #~ msgid "Don't display a GUI" #~ msgstr "No mostrar interfaz gráfica" #~ msgid "Configuration file" #~ msgstr "Archivo de configuración" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accel. del hardware (habilitar(1)|deshabil.(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Resolución (defect: 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo de captura Imagen en segundos" #~ msgid "Number of Pictures to capture" #~ msgstr "Número de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Archivo video (captura del arranque)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tiempo de la captura video (segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Salir de guvcview después de cerrar el vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Número de fotogramas iniciales a omitir" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Exhibir FPS (habilitar(1) | deshabilitar(0))" #~ msgid "Load Profile at start" #~ msgstr "Cargar perfil al inicio" #~ msgid "- local options" #~ msgstr "- opciones locales" #~ msgid "Cap. Image" #~ msgstr "Cap. imagen" #~ msgid "Not enough free space left on disk" #~ msgstr "No hay suficiente espacio libre en disco" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - s/comp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - s/comp BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - formato avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formato Matroska" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Calidad:" guvcview-2.0.2+debian/po/gview_v4l2core/eu.po000066400000000000000000000230251256377215300210350ustar00rootroot00000000000000# Basque translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Pablo Zubiaurre \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Distira" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrastea" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ñabardura" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Asetasuna" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Garbitasuna" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foku automatikoa" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Eskuzko modua" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modu automatikoa" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Obturadore lehentasun modua" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Beltz-maila" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Zuri-balantzea,automatikoa" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Zuri-balantzea egin" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Gorri balantzea" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Urdin balantzea" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Esposizioa" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Irabazia, Automatikoa" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Irabazia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Irauli horizontalki" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Irauli bertikalki" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Modu automatikoa" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #~ msgid "Stop Video (V)" #~ msgstr "Bideoa gelditu (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Kaptura (V):" #, fuzzy #~ msgid "_Cancel" #~ msgstr "utzi" #, fuzzy #~ msgid "Guvcview" #~ msgstr "Gucview oharra:" #~ msgid "Cap. Image (I)" #~ msgstr "Kaptura (I):" #~ msgid "Image Controls" #~ msgstr "Irudi kontrolak" #, fuzzy #~ msgid "Video Controls" #~ msgstr "GUVCViewer kontrolak" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Irudi kontrolak" #~ msgid "start new" #~ msgstr "Berria hasi" #~ msgid "restart" #~ msgstr "berrabiarazi" #~ msgid "new" #~ msgstr "berria" #~ msgid "cancel" #~ msgstr "utzi" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "prozesu berria hasi edo berrabiarazi?\n" #~ "\n" #~ msgid "Left" #~ msgstr "Ezkerrera" #~ msgid "Right" #~ msgstr "Eskuina" #~ msgid "Down" #~ msgstr "Behera" #~ msgid "Up" #~ msgstr "Gora" #~ msgid "set Focus" #~ msgstr "Fokatu" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Gucview oharra:" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ez da posible gailua zabaltzea" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Ziurtatu kamera konektatua\n" #~ "eta driver-a instalatuta dagoela" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Gucview:\n" #~ "\n" #~ "UVC luzapenaren kontrolak" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Luzapen kontrolak UVC kontroladoreari gehitu zaizkio" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "UVC luzapenaren kontrolak" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da bideo-korrontea ezarri" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Mesedez,egiaztatu v4I2 kontrolatzailea duzula\n" #~ "eta instalatuta dagoela." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da konfigurazio minimoarekin abiarazi" #~ msgid "Please reconnect your camera." #~ msgstr "Mesedez, kamera berriro konektatu" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan da gailua ireki" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Ziurtatu gailuaren kontrolatzaileak v4I2 eusten duela" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Irakurketametodoaren errorea" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Gucview errorea:\n" #~ "\n" #~ "Ezin izan dira bufferrak esleitu" #~ msgid "Please try restarting your system." #~ msgstr "Mesedez saiatu sistema berrabiarazten." #~ msgid "Number of Pictures to capture" #~ msgstr "Kapturatu beharreko argazki kopurua" #~ msgid "Load Profile at start" #~ msgstr "Profila kargatu hastean" #~ msgid "- local options" #~ msgstr "-aukera lokalak" #~ msgid "Not enough free space left on disk" #~ msgstr "Ez dago leku nahikorik diskoan" guvcview-2.0.2+debian/po/gview_v4l2core/fo.po000066400000000000000000000140251256377215300210300ustar00rootroot00000000000000# Faroese translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2010-08-05 18:25+0000\n" "Last-Translator: Gunleif Joensen \n" "Language-Team: Faroese \n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview villa:\n" #~ "\n" #~ "Kundi ikki lata tóleind upp" guvcview-2.0.2+debian/po/gview_v4l2core/fr.po000066400000000000000000000454551256377215300210460ustar00rootroot00000000000000# translation of fr.po to Portuguese # translation of guvcview to French # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Paulo Assis , 2008. # # msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Raccourcis claviers" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Luminosité" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Teinte" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturation" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Netteté" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Correction de contre-jour" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Fréquence de rafraîchissement" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Teinte, Automatique" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Mise au Point Automatique" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Mode Manuel" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Mode Auto" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Mode Priorité Vitesse" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Mode Priorité Ouverture" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Niveau de noir" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balance des blancs, Automatique" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Régler la balance des blancs" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance des rouges" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance des bleus" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposition" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Gain, Automatique" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Gain" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Miroir horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Miroir vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centré Horizontalement" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centrer verticalement" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma CAG" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Tueur de couleur" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effets de couleur" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Commande de la caméra" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposition automatique" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Temps d'exposition, Absolu" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposition, Nombre d'images par seconde dynamique" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramique, Relatif" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinaison, Relatif" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Panoramique, Remise à zéro" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinaison, Remise à zéro" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramique, Absolu" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focale, Absolu" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focale, Relatif" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focale, Automatique" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, Absolu" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, Relatif" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, Continu" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Confidentialité" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposition, Auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposition, mode automatique" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposition (valeur absolue)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balance des blancs, Auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balance des blancs" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Balance des blancs par canal, Auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balance des Blancs, Canal Bleu" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balance des Blancs, Canal Rouge" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Mise au point" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Mise au point (Absolue)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Désactivé" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Activé" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Clignotement" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automatique" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotation Horizontale (valeur relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Rotation Verticale (valeur relative)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Rotation Horizontale (remise à zero)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Rotation Verticale (remise à zero)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Mise au Point (valeur absolue)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Mode DEL1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Fréquence DEL1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Désactiver le post-traitement vidéo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Données brutes par pixel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - non compressé (16 bit)" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Sortie Caméra :" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - compressé" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - wind. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - Mpeg video 2" #~ msgid "MS MP4 V3" #~ msgstr "MP4 - MS Mpeg 4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "Audio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Périphérique d'Entrée:" #~ msgid "Sample Rate:" #~ msgstr "Taux d'échantillonage:" #~ msgid "Dev. Default" #~ msgstr "Valeur par Défaut" #~ msgid "Channels:" #~ msgstr "Canaux:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stéréo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtres Vidéo ----" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Bruit" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Canard" #~ msgid "Stop Video (V)" #~ msgstr "Arrêter la vidéo (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Enr. Video (V)" #~ msgid "Error" #~ msgstr "Erreur" #, fuzzy #~ msgid "_Cancel" #~ msgstr "Annuler" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Vous avez plus d'un périphérique vidéo installé.\n" #~ "Voulez-vous en essayer un autre ?\n" #~ msgid "Device:" #~ msgstr "Périphérique d'Entrée:" #~ msgid "Guvcview Video Capture" #~ msgstr "Capture de vidéo Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Arrêt Automatique (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Enr. Image (I)" #~ msgid "Image Controls" #~ msgstr "Réglages de l'image" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Raccourcis claviers" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Raccourcis claviers" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Ficher Image" #, fuzzy #~ msgid "Video file name" #~ msgstr "Ficher Image" #~ msgid "start new" #~ msgstr "commencez nouveau" #~ msgid "restart" #~ msgstr "Redémarrer l'application" #~ msgid "new" #~ msgstr "nouveau" #~ msgid "cancel" #~ msgstr "Annuler" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "nouveau processus ou redémarrage?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "valeurs du codec audio" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " encodeur ips: \n" #~ " (0 - utilise la valeur ips de la combobox)" #~ msgid " monotonic pts" #~ msgstr " Pts monotones" #~ msgid "bit rate: " #~ msgstr "bit rate : " #~ msgid "qmax: " #~ msgstr "qmax : " #~ msgid "qmin: " #~ msgstr "qmin : " #~ msgid "max. qdiff: " #~ msgstr "qdiff max.: " #~ msgid "dia size: " #~ msgstr "taille dia: " #~ msgid "pre dia size: " #~ msgstr "taille pre dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sous cmp: " #~ msgid "last predictor count: " #~ msgstr "compte du dernier indicateur: " #~ msgid "gop size: " #~ msgstr "taille gop: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "méthode me: " #~ msgid "mb decision: " #~ msgstr "décision mb: " #~ msgid "max B frames: " #~ msgstr "nombre max d'images B: " #~ msgid "num threads: " #~ msgstr "nb threads: " #~ msgid "audio codec values" #~ msgstr "valeurs du codec audio" #~ msgid "Left" #~ msgstr "Gauche" #~ msgid "Right" #~ msgstr "Droite" #~ msgid "Down" #~ msgstr "Bas" #~ msgid "Up" #~ msgstr "Haut" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Mise au Point (continu)" #~ msgid "set Focus" #~ msgstr "Mise au Point" #, fuzzy #~ msgid "_Apply" #~ msgstr "Assigner" #~ msgid "Frame Rate:" #~ msgstr "Fréquence d'image:" #~ msgid "Resolution:" #~ msgstr "Résolution :" #~ msgid "Camera Output:" #~ msgstr "Sortie Caméra :" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtres Vidéo ----" #~ msgid " Mirror" #~ msgstr " Miroir" #~ msgid " Invert" #~ msgstr " Inverser" #~ msgid " Negative" #~ msgstr " Négatif" #~ msgid " Mono" #~ msgstr " Monochrome" #~ msgid " Pieces" #~ msgstr " Morceaux" #~ msgid " Particles" #~ msgstr " Particules" #, fuzzy #~ msgid "Print version" #~ msgstr "Affiche la version" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Périphérique video (défaut: /dev/video0)" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Méthode de capture (1-mmap (par défaut) 2-read)" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Avertissement Guvcview :" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "Logiciel GTK de visualisation de vidéo UVC" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "" #~ "Logiciel de visualisation et de capture vidéo pour le pilote uvc Linux" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "AAC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Son" #~ msgid " Show VU meter" #~ msgstr " Afficher le VU-mètre" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Effets Audio ----" #~ msgid "Save File" #~ msgstr "Enregistrer le Fichier" #~ msgid "codec values" #~ msgstr "valeurs codec" #~ msgid "Cap. Video" #~ msgstr "Enr. Video" #~ msgid "GUVCViewer Controls" #~ msgstr "Réglages GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Incapable d'accéder au périphérique" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Svp, assurez-vous que le périphérique est connecté\n" #~ "et que le pilote est installé." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview :\n" #~ "\n" #~ "Contrôles de l'extension UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Les contrôles de l'extension ont été ajoutés au pilote UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Contrôles de l'extension UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Une erreur est survenue lors de l'ajout \n" #~ "des contrôles d'extension du pilote UVC.\n" #~ "Assurez-vous d'avoir lancé guvcview \n" #~ "en tant qu'utilisateur root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erreur de Gubcview :\n" #~ "\n" #~ "Incapable de gérer le flux vidéo" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Vérifiez que vous avez un pilote compatible v4l2\n" #~ "et qu'il est correctement installé." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Erreur de Guvcview :\n" #~ "\n" #~ "Incapable de démarrer avec des réglages minimum" #~ msgid "Please reconnect your camera." #~ msgstr "Veuillez rebrancher votre périphérique." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erreur de Guvcview:\n" #~ "\n" #~ "Incapable d'accéder au périphérique" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Veuillez vérifier que le driver du matériel supporte V4L2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erreur de Gubvcviewr :\n" #~ "\n" #~ "erreur de lecteure" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Veuillez essayer mmap (--capture_method=1) à la place." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erreur de Guvcview:\n" #~ "\n" #~ "Incapable d'assigner des tampons mémoires" #~ msgid "Please try restarting your system." #~ msgstr "Veuillez essayer de redémarrer votre système." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erreur de Gubcview :\n" #~ "\n" #~ "Incapable de créer le flux vidéo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Veuillez le reporter à http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Afficher information extra" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Quitter après avoir ajouter les contrôles d'extension (nécessite root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Ne pas activer le flux vidéo (seulement contrôle d'image)" #~ msgid "Don't display a GUI" #~ msgstr "Ne pas afficher d'interface graphique" #~ msgid "Configuration file" #~ msgstr "Fichier de configuration" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accel. matérielle (activer(1) | desactiver(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Format matriciel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Résolution, défaut: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval d'enr. des images (secondes)" #~ msgid "Number of Pictures to capture" #~ msgstr "Nombre d'images à enregistrer" #~ msgid "Video File name (capture from start)" #~ msgstr "Fichier video (enr. de début)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Durée de l'enr. video (secondes)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Quitte guvcview après avoir fermé la vidéo" #~ msgid "Number of initial frames to skip" #~ msgstr "Nombre d'images initiales à sauter" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Afficher img/sec (activer(1) | desactiver(0))" #~ msgid "Load Profile at start" #~ msgstr "Charger réglages personnalisés" #~ msgid "- local options" #~ msgstr "- options locales" #~ msgid "Cap. Image" #~ msgstr "Enr. Image" #~ msgid "Not enough free space left on disk" #~ msgstr "Il ne reste pas assez d'espace libre sur le disque" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV non compressé" #~ msgid "RGB - uncomp BMP" #~ msgstr "RVB - BMP non compressé" #~ msgid "AVI - avi format" #~ msgstr "AVI - format avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - format Matroska" #~ msgid " Show" #~ msgstr " Afficher" #~ msgid "Quality:" #~ msgstr "Qualité:" guvcview-2.0.2+debian/po/gview_v4l2core/gl.po000066400000000000000000000257521256377215300210370ustar00rootroot00000000000000# Galician translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # # FIRST AUTHOR , 2010. # Dario Villar Veres , 2010. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:34+0000\n" "Last-Translator: Dario \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brillo" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Ton" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturación" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Focalización" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, Automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Foco, Automático" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo Manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo Automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nivel de negro" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balance vermello" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balance azul" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposición" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganancia, Automática" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganancia" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Xiro horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Xiro vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efectos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposición automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposición, Absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinación, relativo" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinación, Restabelecer" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposición, Automático" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposición, Prioridade automática" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposición (absoluto)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco(absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Modo Automático" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Saída da cámara:" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Dispositivo de entrada:" #~ msgid "Sample Rate:" #~ msgstr "Taxa de mostraxe:" #~ msgid "Channels:" #~ msgstr "Canles:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Reverberar" #~ msgid " Fuzz" #~ msgstr " Difuso" #~ msgid "Stop Video (V)" #~ msgstr "Deter vídeo (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Cap. Video (V)" #~ msgid "Error" #~ msgstr "Erro" #, fuzzy #~ msgid "_Cancel" #~ msgstr "cancelar" #~ msgid "Device:" #~ msgstr "Dispositivo:" #~ msgid "Guvcview Video Capture" #~ msgstr "Capturador de vídeo GUVCView" #~ msgid "Cap. Image (I)" #~ msgstr "Cap. Imaxe (I)" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Controles de GUVCViewer" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Controles de GUVCViewer" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Nome da imaxe" #, fuzzy #~ msgid "Video file name" #~ msgstr "Nome da imaxe" #~ msgid "restart" #~ msgstr "reiniciar" #~ msgid "new" #~ msgstr "novo" #~ msgid "cancel" #~ msgstr "cancelar" #~ msgid "bit rate: " #~ msgstr "Taxa de bits: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "gop size: " #~ msgstr "Tamaño do gop: " #~ msgid "Left" #~ msgstr "Esquerda" #~ msgid "Right" #~ msgstr "Dereita" #~ msgid "Down" #~ msgstr "Abaixo" #~ msgid "Up" #~ msgstr "Arriba" #~ msgid "Auto Focus (continuous)" #~ msgstr "Foco automático(continuo)" #~ msgid "set Focus" #~ msgstr "Definir foco" #, fuzzy #~ msgid "_Apply" #~ msgstr "Aplicar" #~ msgid "Frame Rate:" #~ msgstr "Taxa de fotogramas:" #~ msgid "Resolution:" #~ msgstr "Resolution:" #~ msgid "Camera Output:" #~ msgstr "Saída da cámara:" #~ msgid " Mirror" #~ msgstr " Espello" #~ msgid " Invert" #~ msgstr " Inverter" #~ msgid " Negative" #~ msgstr " Negativo" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Particles" #~ msgstr " Partículas" #, fuzzy #~ msgid "Print version" #~ msgstr "Mostrar a versión" #~ msgid "Audio" #~ msgstr "Son" #~ msgid " Sound" #~ msgstr " Son" #~ msgid "Save File" #~ msgstr "Gardar o ficheiro" #~ msgid "Cap. Video" #~ msgstr "Cap. Video" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non foi posíbel conectar a cámara" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Asegúrese de que a súa cámara está conectada\n" #~ "e que o controlador está correctamente instalada." #~ msgid "Please reconnect your camera." #~ msgstr "Conecte de novo a súa cámara." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non se poideron consultar as capacidades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Asegúrese de que o controlador do dispositivo soporta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Erro no método de lectura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Probe mmap no seu lugar (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro de GUVCView:\n" #~ "\n" #~ "Non foi posíbel asignarlle memoria aos búferes" #~ msgid "Please try restarting your system." #~ msgstr "Probe reiniciando o seu sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro en GUVCView:\n" #~ "\n" #~ "Non foi posíble crear un fío de execución de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Por favor, informe do erro a http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Frame size, default: 640x480" #~ msgstr "Tamaño predeterminado do marco:640x480" #~ msgid "Cap. Image" #~ msgstr "Cap. Imaxe" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Calidade:" guvcview-2.0.2+debian/po/gview_v4l2core/he.po000066400000000000000000000325031256377215300210210ustar00rootroot00000000000000# Hebrew translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "פקדי משתמש" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "בהירות" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ניגודיות" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "גוון" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "רוויה" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "חדות" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "גאמה" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "פיצוי אור אחורי" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "תדר חשמל" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "גוון, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "מיקוד, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "מצב ידני" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "מצב אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "מצב עדיפות צמצם" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "רמת שחור" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "איזון לובן, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "איזון האדום" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "איזון הכחול" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "חשיפה" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "מרווח, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "הישג" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "היפוך אופקי" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "היפוך אנכי" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "מרכז אופקי" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "מרכז אנכי" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "פקדי מצלמה" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "חשיפה אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "זמן חשיפה, מוחלט" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "נטייה, יחסי" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "נטייה, אפס" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "מיקוד, מוחלט" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "מיקוד, יחסי" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "מיקוד, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "פרטיות" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "חשיפה, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "חשיפה, עדיפות אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "חשיפה (מוחלטת)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "טמפרטורת איזון הלבן, אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "טפמרטורת איזון הלבן" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "רכיב איזון הלבן, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "רכיב איזון הלבן הכחול" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "רכיב איזון הלבן האדום" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "מצב אוטומטי" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "הטייה (יחסי)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "איפוס הטייה" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "מיקוד (מוחלט)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "מצב LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "תדר LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "בטל עיבוד וידאו" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "פלט מצלמה:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - מקובץ" #~ msgid "MPEG video 1" #~ msgstr "MPEG וידאו 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - וידאו פלאש 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - וינדוס מדיה וידאו 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - פורמט MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Sample Rate:" #~ msgstr "קצב דגימה" #~ msgid "Channels:" #~ msgstr "ערוצים:" #~ msgid "1 - mono" #~ msgstr "1 - מונו" #~ msgid "2 - stereo" #~ msgstr "2 - סטריאו" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "--- מסנני וידאו ---" #~ msgid " Echo" #~ msgstr " הד" #, fuzzy #~ msgid "_Cancel" #~ msgstr "בטל" #~ msgid "Device:" #~ msgstr "התקן:" #~ msgid "Image Controls" #~ msgstr "פקדי תמונה" #, fuzzy #~ msgid "Video Controls" #~ msgstr "פקדי משתמש" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "פקדי משתמש" #, fuzzy #~ msgid "Photo file name" #~ msgstr "שם קובץ תמונה" #, fuzzy #~ msgid "Video file name" #~ msgstr "שם קובץ תמונה" #~ msgid "start new" #~ msgstr "הפעל עכשיו" #~ msgid "restart" #~ msgstr "הפעל מחדש" #~ msgid "new" #~ msgstr "חדש" #~ msgid "cancel" #~ msgstr "בטל" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "הפעל תהליך חדש או הפעל מחדש?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "ערכי מקודד" #~ msgid "bit rate: " #~ msgstr "קצב סיביות: " #~ msgid "Left" #~ msgstr "שמאל" #~ msgid "Right" #~ msgstr "ימין" #~ msgid "Down" #~ msgstr "למטה" #~ msgid "Up" #~ msgstr "למעלה" #~ msgid "Auto Focus (continuous)" #~ msgstr "מיקוד אוטומטי (מתמשך)" #~ msgid "set Focus" #~ msgstr "הגדר מיקוד" #, fuzzy #~ msgid "_Apply" #~ msgstr "החל" #~ msgid "Resolution:" #~ msgstr "רזולוציה:" #~ msgid "Camera Output:" #~ msgstr "פלט מצלמה:" #~ msgid "---- Video Filters ----" #~ msgstr "--- מסנני וידאו ---" #~ msgid " Mirror" #~ msgstr " מראה" #~ msgid " Invert" #~ msgstr " הפוך" #~ msgid " Mono" #~ msgstr " מונו" #~ msgid " Pieces" #~ msgstr " חלקים" #, fuzzy #~ msgid "Print version" #~ msgstr "מדפיס גרסה" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "התקן וידאו לשימוש [ברירת מחדל:/dev/video0]" #~ msgid "Audio" #~ msgstr "שמע" #~ msgid " Sound" #~ msgstr " קול" #~ msgid "---- Audio Effects ----" #~ msgstr "--- אפקטים קוליים ---" #~ msgid "Save File" #~ msgstr "שמור קובץ" #~ msgid "Cap. Video" #~ msgstr "לכד וידאו" #~ msgid "GUVCViewer Controls" #~ msgstr "פקדי GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול לפתוח התקן" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "אנא וודא שהמצלמה מחוברת\n" #~ "ושמנהל ההתקן הנכון מותקן." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול להגדיר זרימת וידאו תקפה לguvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "וודא שמנהל ההתקן שלך תואם v4l2\n" #~ "ושהוא מותקן כהלכה." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן להתחיל עם התקנה מינימאלית" #~ msgid "Please reconnect your camera." #~ msgstr "אנא חבר מחדש את המצלמה." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן לבדוק את יכולות ההתקן" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "וודא שמנהל ההתקן שלך תואם v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "קרא שגיאת שיטה" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "נסה את mmap במקום (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן להקצות חוצץ" #~ msgid "Please try restarting your system." #~ msgstr "נסה לאתחל את המערכת." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול ליצור שרשור וידאו" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "דווח על כך לhttp://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Configuration file" #~ msgstr "קובץ הגדרות" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "האצת חומרה (פעיל(1) | מנוטרל(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "גודל פריים, ברירת מחדל: 640x480" #~ msgid "Number of Pictures to capture" #~ msgstr "מספר תמונות ללכידה" #~ msgid "Video File name (capture from start)" #~ msgstr "שם קובץ וידאו (לוכד מההתחלה)" #~ msgid "Video capture time (in seconds)" #~ msgstr "זמן לכידת וידאו (בשניות)" #~ msgid "Exits guvcview after closing video" #~ msgstr "יוצא מguvcview אחרי סגירת וידאו" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "מראה ערך פריימים לשניה (FPS) (פעיל(1) | מנוטרל(2))" #~ msgid "Load Profile at start" #~ msgstr "טען פרופיל בהפעלה" #~ msgid "- local options" #~ msgstr "- אפשרויות מקומיות" #~ msgid "Cap. Image" #~ msgstr "לכד תמונה" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV לא מקובץ" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP לא מקובץ" #~ msgid " Show" #~ msgstr " הצג" #~ msgid "Quality:" #~ msgstr "איכות:" guvcview-2.0.2+debian/po/gview_v4l2core/hr.po000066400000000000000000000337111256377215300210400ustar00rootroot00000000000000# Croatian translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-09-27 09:35+0000\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Korisničke Kontrole" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Osvjetljenje" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Nijansa" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Zasićenje" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Oštrina" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Ispravke pozadinskog osvjetljenja" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokusiranje, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ručni Način" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatski Način" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Razina Crne boje" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Ravnoteža Bijele, Automatski" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Uredi Ravnotežu Bijele" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Ravnoteža Crvene" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Ravnoteža Plave" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Izloženost" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Dobit" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Vodoravno Okretanje" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Okomito Okretanje" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Vodoravno Centriraj" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Okomito Centriraj" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekti boje" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrole Kamere" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatska Izloženost" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Vrijeme Izloženosti, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Izloženost, Broj Slika" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokusiranje, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokusiranje, Relativno" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokusiranje, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Približavanje, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Približavanje, Relativno" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Približavanje, Neprestano" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privatnost" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Izloženost, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Izloženost (Apsolutna)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokusiranje" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Automatski Način" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Input Device:" #~ msgstr "Ulazni uređaj:" #~ msgid "Dev. Default" #~ msgstr "Zadane Postavke Uređaja" #~ msgid "Channels:" #~ msgstr "Kanali:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Video Filteri ----" #~ msgid " Echo" #~ msgstr " Jeka" #~ msgid " Reverb" #~ msgstr " Odjek" #~ msgid " Fuzz" #~ msgstr " Mutno" #~ msgid " Ducky" #~ msgstr " Patka" #~ msgid "Stop Video (V)" #~ msgstr "Zaustavi Video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Snimi Video (V)" #~ msgid "Error" #~ msgstr "Grješka" #, fuzzy #~ msgid "_Cancel" #~ msgstr "odustani" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Imate više uređaja instalirano.\n" #~ "Želite li isprobati ostale?\n" #~ msgid "Device:" #~ msgstr "Uređaj:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview Snimanje Videa" #, fuzzy #~ msgid "Guvcview" #~ msgstr "Guvcview Upozorenje" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Zaustavi Automatsko (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Snimi Sliku (I)" #~ msgid "Image Controls" #~ msgstr "Kontrole Slike" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Korisničke Kontrole" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Korisničke Kontrole" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Ime Slikovne Datoteke" #, fuzzy #~ msgid "Video file name" #~ msgstr "Ime Slikovne Datoteke" #~ msgid "start new" #~ msgstr "pokreni novo" #~ msgid "restart" #~ msgstr "ponovo pokreni" #~ msgid "new" #~ msgstr "novo" #~ msgid "cancel" #~ msgstr "odustani" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "upalite novi proces ili ponovno pokrenite?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "vrijednosti audio codeca" #~ msgid "audio codec values" #~ msgstr "vrijednosti audio codeca" #~ msgid "Left" #~ msgstr "Lijevo" #~ msgid "Right" #~ msgstr "Desno:" #~ msgid "Down" #~ msgstr "Dolje" #~ msgid "Up" #~ msgstr "Gore" #~ msgid "Auto Focus (continuous)" #~ msgstr "Automatski Focus (neprekidno)" #~ msgid "set Focus" #~ msgstr "postavi fokusiranje" #, fuzzy #~ msgid "_Apply" #~ msgstr "Primjeni" #~ msgid "Frame Rate:" #~ msgstr "Broj Slika:" #~ msgid "Resolution:" #~ msgstr "Razlučivost:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Video Filteri ----" #~ msgid " Mirror" #~ msgstr " Zrcalo" #~ msgid " Invert" #~ msgstr " Izokrenuto" #~ msgid " Negative" #~ msgstr " Negativ" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Pieces" #~ msgstr " Komadići" #~ msgid " Particles" #~ msgstr " Čestice" #, fuzzy #~ msgid "Print version" #~ msgstr "Isprintaj verziju" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Video uređaj rabljen [zadani: /dev/video0]" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview Upozorenje" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Zvuk" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio Efekti ----" #~ msgid "Save File" #~ msgstr "Spremi Datoteku" #~ msgid "Cap. Video" #~ msgstr "Snimi Video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Kontrole" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče pokrenuti uređaj" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Molim provjerite dali je kamera spojena\n" #~ "i dali je instaliran ispravan driver." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC kontrole Ekstenzije" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrole Ekstenzije su dodane UVC driveru" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC kontrole Ekstenzije" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Dogodila se grješka prilikom dodavanja kontrola\n" #~ "ekstenzije UVC driveru\n" #~ "Pokrenite guvcview kao root (ili sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče postaviti vrijedeći video stream za guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Provjerite dali vaš video driver ima podršku za v4l2\n" #~ "i pogledajte dali je ispravno instaliran." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Nije moguče pokretanje s minimalnim postavkama" #~ msgid "Please reconnect your camera." #~ msgstr "Molim ponovno spajanje kamere." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Sposobnost uređaja nije čitljiva" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Provjerite da vaš driver ima podršku za v4l2." #~ msgid "Please try restarting your system." #~ msgstr "Probajte ponovno pokrenuti vaš sustav." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče pokrenuti uređaj" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Molimo prijavite na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Izlaz nakon dodavanja UVC ekstenzivnih kontrola (potreban root/sudo)" #~ msgid "Configuration file" #~ msgstr "Datoteka Postavki" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardversko ubrzanje (omoguči(1) | onemoguči(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Veličina slike, zadana: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval slikanja u sekundama" #~ msgid "Number of Pictures to capture" #~ msgstr "Broj Slika za snimiti" #~ msgid "Video File name (capture from start)" #~ msgstr "Ime Video Datoteke (snimka od početka)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Vrijeme snimanja videa (u sekundama)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Izlaz iz guvcviewa nakon zatvaranja videa" #~ msgid "Number of initial frames to skip" #~ msgstr "Broj preskočenih početnih slika" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Prikaz FPS broja (omoguči(1) | onemoguči (0))" #~ msgid "Load Profile at start" #~ msgstr "Učitaj Profil pri pokretanju" #~ msgid "- local options" #~ msgstr "- lokalne opcije" #~ msgid "Cap. Image" #~ msgstr "Snimi Sliku" #~ msgid "Not enough free space left on disk" #~ msgstr "Nema dovoljno slobodnog prostora na disku" #~ msgid " Show" #~ msgstr " Prikaži" #~ msgid "Quality:" #~ msgstr "Kvaliteta:" guvcview-2.0.2+debian/po/gview_v4l2core/it.po000066400000000000000000000506661256377215300210530ustar00rootroot00000000000000# Translation of guvcview to the Italian language # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # Giovanni Scafora , 2013. # # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-07 02:31+0000\n" "Last-Translator: Giovanni Scafora \n" "Language-Team: Arch Linux Italian Team \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlli dell'utente" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Luminosità" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrasto" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Colore" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturazione" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidezza" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensazione del controluce" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequenza di aggiornamento" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Colore automatico" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Messa a fuoco automatica" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modalità manuale" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modalità automatica" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modalità di priorità dell'otturatore" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modalità di priorità dell'apertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Livello del nero" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Bilanciamento automatico del bianco" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Bilanciamento del bianco" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Bilanciamento del rosso" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Bilanciamento del blu" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Esposizione" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Guadagno automatico" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Guadagno" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Rifletti orizzontalmente" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Rifletti verticalmente" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centra orizzontalmente" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centra verticalmente" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Killer del colore" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effetti del colore" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlli della webcam" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Esposizione automatica" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo di esposizione assoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Esposizione, framerate dinamico" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramica relativa" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinazione relativa" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Ripristina la panoramica" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Ripristina l'inclinazione" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramica assoluta" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Messa a fuoco assoluta" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Messa a fuoco relativa" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Messa a fuoco automatica" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom assoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom continuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Esposizione automatica" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esposizione, priorità automatica" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Esposizione (assoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Bilanciamento del bianco automatico" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Bilanciamento del bianco" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Bilanciamento dei componenti del bianco automatico" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Bilanciamento del bianco, canale blu" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Bilanciamento del bianco, canale rosso" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Messa a fuoco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Messa a fuoco (assoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Spento" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Acceso" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Lampeggiante" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automatico" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Panoramica (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinazione (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Ripristina la panoramica" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Ripristina l'inclinazione" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Messa a fuoco (assoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modalità LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequenza LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Disabilita l'elaborazione video" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bit per pixel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - non compresso (16 bit)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Uscita della webcam:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - compresso" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - formato MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "API dell'audio:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Dispositivo di ingresso:" #~ msgid "Sample Rate:" #~ msgstr "Frequenza di campionamento:" #~ msgid "Dev. Default" #~ msgstr "Impostazione predefinita del dispositivo" #~ msgid "Channels:" #~ msgstr "Canali:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtri video ----" #~ msgid " Echo" #~ msgstr " Eco" #~ msgid " Reverb" #~ msgstr " Riverbero" #~ msgid " Fuzz" #~ msgstr " Rumore" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Anatroccolo" #~ msgid "Stop Video (V)" #~ msgstr "Ferma il video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Registra video (V)" #~ msgid "Error" #~ msgstr "Errore" #, fuzzy #~ msgid "_Cancel" #~ msgstr "annulla" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "C'è più di un dispositivo video installato.\n" #~ "Vuoi provare l'altro ?\n" #~ msgid "Device:" #~ msgstr "Dispositivo:" #~ msgid "Guvcview Video Capture" #~ msgstr "Cattura video di Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Arresto automatico (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Cattura immagine (I)" #~ msgid "Image Controls" #~ msgstr "Controlli dell'immagine" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Controlli dell'utente" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Controlli dell'utente" #~ msgid "Save Profile" #~ msgstr "Salva profilo" #~ msgid "Load Profile" #~ msgstr "Carica profilo" #~ msgid "File Format:" #~ msgstr "Formato del file:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Nome del file immagine" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Immagine raw (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Nome del file immagine" #~ msgid "start new" #~ msgstr "inizia nuovo" #~ msgid "restart" #~ msgstr "riavvia" #~ msgid "new" #~ msgstr "nuovo" #~ msgid "cancel" #~ msgstr "annulla" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "vuoi lanciare un nuovo processo o riavviare?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "valori del codec audio" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " encoder fps: \n" #~ " (0 - usare il valore fps della combobox)" #~ msgid " monotonic pts" #~ msgstr " punti monocromatici" #~ msgid "bit rate: " #~ msgstr "bit rate: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "dim. dia: " #~ msgid "pre dia size: " #~ msgstr "dim. pre dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "conteggio dell'ultimo indicatore: " #~ msgid "gop size: " #~ msgstr "dim. gop: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "metodo me: " #~ msgid "mb decision: " #~ msgstr "decisione mb: " #~ msgid "max B frames: " #~ msgstr "numero massimo di immagini B: " #~ msgid "num threads: " #~ msgstr "numero di thread: " #~ msgid "audio codec values" #~ msgstr "valori del codec audio" #~ msgid "sample format: " #~ msgstr "Formato di campionamento: " #~ msgid "Settings" #~ msgstr "Impostazioni" #~ msgid "Hardware Defaults" #~ msgstr "Ripristina l'hardware di default" #~ msgid "Camera Button" #~ msgstr "Pulsante della camera" #~ msgid "Capture Image" #~ msgstr "Cattura l'immagine" #~ msgid "Capture Video" #~ msgstr "Registra il video" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "File" #~ msgid "Increment Filename" #~ msgstr "Incrementa il nome del file" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Codec video" #~ msgid "Video Codec Properties" #~ msgstr "Proprietà del codec video" #~ msgid "Audio Codec" #~ msgstr "Codec audio" #~ msgid "Audio Codec Properties" #~ msgstr "Proprietà del codec audio" #~ msgid "Left" #~ msgstr "Sinistra" #~ msgid "Right" #~ msgstr "Destra" #~ msgid "Down" #~ msgstr "Sotto" #~ msgid "Up" #~ msgstr "Sopra" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Messa a fuoco automatica (continua)" #~ msgid "set Focus" #~ msgstr "imposta la messa a fuoco" #, fuzzy #~ msgid "_Apply" #~ msgstr "Applica" #~ msgid "Frame Rate:" #~ msgstr "Frame rate:" #~ msgid "Resolution:" #~ msgstr "Risoluzione:" #~ msgid "Camera Output:" #~ msgstr "Uscita della webcam:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtri video ----" #~ msgid " Mirror" #~ msgstr " Specchio" #~ msgid " Invert" #~ msgstr " Inverti" #~ msgid " Negative" #~ msgstr " Negativo" #~ msgid " Mono" #~ msgstr " Monocromatico" #~ msgid " Pieces" #~ msgstr " Pezzi" #~ msgid " Particles" #~ msgstr " Particelle" #, fuzzy #~ msgid "Print version" #~ msgstr "Visualizza la versione" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Dispositivo video da utilizzare [predefinito: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Metodo di registrazione (1-mmap (predefinito) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Carica profilo" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Avviso di Guvcview:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "registra video da" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC visualizzatore video" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Un visualizzatore e catturatore video per il driver uvc di linux" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Suono" #~ msgid " Show VU meter" #~ msgstr " Visualizza VU meter" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Effetti audio ----" #~ msgid "Save File" #~ msgstr "Salva file" #~ msgid "codec values" #~ msgstr "valori dei codec" #~ msgid "capturing photo to" #~ msgstr "cattura foto da" #~ msgid "Cap. Video" #~ msgstr "Registra video" #~ msgid "GUVCViewer Controls" #~ msgstr "Controlli di Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile accedere al dispositivo" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Assicurarsi che la webcam sia connessa\n" #~ "e che sia installato il rispettivo driver." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controlli dell'estensione di UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "I controlli dell'estensione sono stati aggiunti al driver UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Controlli dell'estensione di UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Si è verificato un errore nell'aggiungere\n" #~ "i controlli dell'estensione al driver UVC\n" #~ "Assicurarsi di avviare guvcview da root (o sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile impostare un flusso video valido per guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Assicurarsi che il driver del dispositivo sia\n" #~ "v4l2 compatibile e che sia correttamente installato." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile avviare con l'installazione minima" #~ msgid "Please reconnect your camera." #~ msgstr "Riconnettere la webcam." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile interrogare le funzionalità del dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Assicurarsi che il driver del dispositivo supporti v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Errore del metodo di lettura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "In alternativa, provare mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile allocare i buffer" #~ msgid "Please try restarting your system." #~ msgstr "Provare a riavviare il sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile creare un flusso video" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Siete pregati di segnalarlo a http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Visualizza le informazioni di debug" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Uscire dopo aver aggiunto i controlli dell'estensione di UVC (necessita " #~ "di root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Non attivare il flusso video (solo controlli dell'immagine)" #~ msgid "Don't display a GUI" #~ msgstr "Non visualizzare la GUI" #~ msgid "Configuration file" #~ msgstr "File di configurazione" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accelerazione hardware (abilita(1) | disabilita(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formato del pixel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Risoluzione predefinita: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervallo di registrazione dell'immagine in secondi" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero di immagini da registrare" #~ msgid "Video File name (capture from start)" #~ msgstr "Nome del file video (registra dall'inizio)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Durata della registrazione video (in secondi)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Esci da guvcview dopo aver chiuso il video" #~ msgid "Number of initial frames to skip" #~ msgstr "Numero di immagini iniziali da ignorare" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Mostra il valore degli FPS (abilita(1) | disabilita (0))" #~ msgid "Load Profile at start" #~ msgstr "Carica profilo all'avvio" #~ msgid "- local options" #~ msgstr "- opzioni locali" #~ msgid "Cap. Image" #~ msgstr "Cattura immagine" #~ msgid "Not enough free space left on disk" #~ msgstr "Spazio libero sul disco insufficiente" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV non compresso" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP non compresso" #~ msgid "AVI - avi format" #~ msgstr "AVI - formato avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formato Matroska" #~ msgid "WEBM - format" #~ msgstr "WEBM - formato WEBM" #~ msgid " Show" #~ msgstr " Visualizza" #~ msgid "Quality:" #~ msgstr "Qualità:" guvcview-2.0.2+debian/po/gview_v4l2core/ja.po000066400000000000000000000266171256377215300210300ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Nobuhiro Iwamatsu , 2009. # msgid "" msgstr "" "Project-Id-Version: GUVCView 1.0.2\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Poedit-Country: JAPAN\n" "X-Poedit-Language: Japanese\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "輝度" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "コントラスト" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "色相" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "彩度" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "鮮明度" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ガンマ" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "バックライト補正" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "電源ライン周波数" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "フォーカス,自動" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "手動モード" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "自動モード" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "シャッター優先モード" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "絞り優先モード" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ゲイン" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "露出、自動" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "露出、自動優先" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (完全な)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "ホワイトバランス温度、自動" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ホワイトバランス温度" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ホワイトバランス成分、自動" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ホワイトバランス青成分" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ホワイトバランス赤成分" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "自動モード" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "パン (相対)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "チルト (相対)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "パン リセット" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "チルト リセット" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "フォーカス (完全な)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 モード" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 回数" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "ビデオ処理 を無効にする" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "1画素あたりの生のビット" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "カメラ出力:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - 圧縮" #~ msgid "Input Device:" #~ msgstr "入力デバイス:" #~ msgid "Sample Rate:" #~ msgstr "サンプルレート:" #~ msgid "Dev. Default" #~ msgstr "デバイス デフォルト" #~ msgid "Channels:" #~ msgstr "チャンネル:" #~ msgid "1 - mono" #~ msgstr "1 - モノラル" #~ msgid "2 - stereo" #~ msgstr "2 - ステレオ" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- ビデオフィルタ ----" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #, fuzzy #~ msgid "_Cancel" #~ msgstr "キャンセル" #~ msgid "Device:" #~ msgstr "デバイス:" #~ msgid "Image Controls" #~ msgstr "イメージコントロール" #, fuzzy #~ msgid "Video Controls" #~ msgstr "GUVCViewer コントロール" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "イメージコントロール" #, fuzzy #~ msgid "Photo file name" #~ msgstr "画像ファイル名" #, fuzzy #~ msgid "Video file name" #~ msgstr "画像ファイル名" #~ msgid "start new" #~ msgstr "新しく開始する" #~ msgid "restart" #~ msgstr "再起動" #~ msgid "new" #~ msgstr "新規" #~ msgid "cancel" #~ msgstr "キャンセル" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "新しいプロセスを立ち上げるか、再起動しますか?\n" #~ "\n" #~ msgid "Left" #~ msgstr "左" #~ msgid "Right" #~ msgstr "右" #~ msgid "Down" #~ msgstr "下" #~ msgid "Up" #~ msgstr "上" #~ msgid "Auto Focus (continuous)" #~ msgstr "オートフォーカス(連続)" #~ msgid "set Focus" #~ msgstr "フォーカスを設定する" #~ msgid "Frame Rate:" #~ msgstr "フレームレート:" #~ msgid "Resolution:" #~ msgstr "解像度:" #~ msgid "Camera Output:" #~ msgstr "カメラ出力:" #~ msgid "---- Video Filters ----" #~ msgstr "---- ビデオフィルタ ----" #~ msgid " Mirror" #~ msgstr " 鏡" #~ msgid " Invert" #~ msgstr " 反転" #~ msgid " Negative" #~ msgstr " ネガ" #~ msgid " Mono" #~ msgstr " モノクロ" #~ msgid " Pieces" #~ msgstr " 断片" #, fuzzy #~ msgid "Print version" #~ msgstr "バージョンを表示する" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "使用するビデオデバイス [デフォルト: /dev/video0]" #~ msgid "Audio" #~ msgstr "オーディオ" #~ msgid " Sound" #~ msgstr " サウンド" #~ msgid "---- Audio Effects ----" #~ msgstr "---- オーディオ エフェクト ----" #~ msgid "Save File" #~ msgstr "ファイルを保存する" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "デバイスをオープンすることができません" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "最小限のセットアップから始めることができません" #~ msgid "Please reconnect your camera." #~ msgstr "カメラを再接続してください。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "バッファを確保できません" #~ msgid "Please try restarting your system." #~ msgstr "システムを再起動してみてください。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "ビデオスレッドを作成することができません" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "http://developer.berlios.de/bugs/?group_id=8179 にレポートしてください。" #~ msgid "Displays debug information" #~ msgstr "デバッグ情報を表示する" #~ msgid "Configuration file" #~ msgstr "設定ファイル" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "ハードウェアアクセラレーション (有効(1) | 無効(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "フレームサイズ、デフォルト: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "秒単位の画像キャプチャ間隔" #~ msgid "Number of Pictures to capture" #~ msgstr "キャプチャする画像数" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS 値の表示 (有効(1) | 無効 (0))" #~ msgid "Load Profile at start" #~ msgstr "開始時にプロファイルを読み込む" #~ msgid "- local options" #~ msgstr "- ローカルオプション" #~ msgid "Cap. Image" #~ msgstr "キャプチャ.画像" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - 非圧縮 YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - 非圧縮 BMP" #~ msgid " Show" #~ msgstr " 表示" guvcview-2.0.2+debian/po/gview_v4l2core/lv.po000066400000000000000000000452501256377215300210510ustar00rootroot00000000000000# Latvian translation for guvcview # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-01 09:27+0000\n" "Last-Translator: tuxmaniack \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Lietotāja vadīklas" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Gaišums" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrasts" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tonis" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Piesātinājums" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Asums" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Fona apgaismojuma kompensācija" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Līnijas frekvence" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Tonis, automātiski" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokuss, automātiski" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Rokas režīms" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automātiskais režīms" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Aizvara prioritātes režīms" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Diafragmas prioritātes režīms" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Melnā līmenis" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Baltās krāsas līdzsvars, automātiski" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Sarkanais līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Zilais līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Pieaugums, automātiski" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Pieaugums" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontāli apgriezts" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikāli apgriezts" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontāli centrā" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikāli centrā" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Krāsu slepkava" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Krāsu efekti" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kameras vadīklas" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automātiska ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Ekspozīcijas laiks, absolūts" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Ekspozīcija, dinamisks kadrātrums" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Vert. pagrieziens, relatīvi" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Horiz. pagrieziens, relatīvi" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Vert. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Horiz. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Vert. pagrieziens, absolūti" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokuss, absolūts" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokuss, relatīvs" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokuss, automātiski" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Mērogošana, absolūta" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Mērogošana, relatīva" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Mērogošana, nepārtraukta" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privātums" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Ekspozīcija, automātiska prioritāte" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ekspozīcija (absolūta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Baltās krāsas līdzsvars, automātiski" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Baltās krāsas līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Baltās krāsas līdzsvara komponents, automātiski" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Baltās krāsas līdzsvara zilais komponents" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Baltās krāsas līdzsvara sarkanais komponents" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokuss" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Fokuss (absolūts)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Izslēgts" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Ieslēgts" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Mirgošana" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automātiski" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Vert. pagrieziens (relatīvi)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Horiz. pagrieziens (relatīvi)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Vert. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Horiz. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokuss (absolūts)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 režīms" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 frekvence" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Atslēgt video apstrādi" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - nesaspiests (16 biti)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Kameras izvade:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - saspiests" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 formāts" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "Audio saskarne:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Ievades ierīce:" #~ msgid "Sample Rate:" #~ msgstr "Nolases biežums:" #~ msgid "Dev. Default" #~ msgstr "Izstrādātāja noklusējums" #~ msgid "Channels:" #~ msgstr "Kanāli:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Video filtri ----" #~ msgid " Echo" #~ msgstr " Atbalss" #~ msgid " Reverb" #~ msgstr " Reverbācija" #~ msgid " Fuzz" #~ msgstr " Rācija" #~ msgid " WahWah" #~ msgstr " VahVah" #~ msgid " Ducky" #~ msgstr " Pīle" #~ msgid "Cap. Video (V)" #~ msgstr "Uzņemt video (V)" #~ msgid "Error" #~ msgstr "Kļūda" #, fuzzy #~ msgid "_Cancel" #~ msgstr "atcelt" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Ir pieejamas vairākas video ierīces.\n" #~ "Vai vēlaties izmēģināt citu?\n" #~ msgid "Device:" #~ msgstr "Ierīce:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview video uzņemšana" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #~ msgid "Cap. Image (I)" #~ msgstr "Uzņemt attēlu (I)" #~ msgid "Image Controls" #~ msgstr "Attēla vadīklas" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Lietotāja vadīklas" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Lietotāja vadīklas" #~ msgid "Save Profile" #~ msgstr "Saglabāt profilu" #~ msgid "Load Profile" #~ msgstr "Ielādēt profilu" #~ msgid "File Format:" #~ msgstr "Faila formāts:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Attēla faila nosaukums" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Raw Image (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Attēla faila nosaukums" #~ msgid "start new" #~ msgstr "sākt jaunu" #~ msgid "restart" #~ msgstr "pārstartēt" #~ msgid "new" #~ msgstr "jauns" #~ msgid "cancel" #~ msgstr "atcelt" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "palaist jaunu procesu vai pārstartēt?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "audio kodeka vērtības" #~ msgid "bit rate: " #~ msgstr "bitu ātrums: " #~ msgid "audio codec values" #~ msgstr "audio kodeka vērtības" #~ msgid "Settings" #~ msgstr "Iestatījumi" #~ msgid "Hardware Defaults" #~ msgstr "Aparatūras noklusējums" #~ msgid "Camera Button" #~ msgstr "Kameras poga" #~ msgid "Capture Image" #~ msgstr "Uzņemt attēlu" #~ msgid "Capture Video" #~ msgstr "Uzņemt video" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "Fails" #~ msgid "Increment Filename" #~ msgstr "Automātiski pieaugošs" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Video kodeks" #~ msgid "Video Codec Properties" #~ msgstr "Video kodeka īpašības" #~ msgid "Audio Codec" #~ msgstr "Audio kodeks" #~ msgid "Audio Codec Properties" #~ msgstr "Audio kodeka īpašības" #~ msgid "Left" #~ msgstr "Pa kreisi" #~ msgid "Right" #~ msgstr "Pa labi" #~ msgid "Down" #~ msgstr "Lejup" #~ msgid "Up" #~ msgstr "Augšup" #~ msgid "8 bit" #~ msgstr "8 biti" #~ msgid "12 bit" #~ msgstr "12 biti" #~ msgid "Auto Focus (continuous)" #~ msgstr "Automātisks fokuss (nepārtraukts)" #~ msgid "set Focus" #~ msgstr "iestatīt fokusu" #, fuzzy #~ msgid "_Apply" #~ msgstr "Pielietot" #~ msgid "Frame Rate:" #~ msgstr "Kadru ātrums:" #~ msgid "Resolution:" #~ msgstr "Izšķirtspēja:" #~ msgid "Camera Output:" #~ msgstr "Kameras izvade:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Video filtri ----" #~ msgid " Mirror" #~ msgstr " Spogulis" #~ msgid " Invert" #~ msgstr " Invertēt" #~ msgid " Negative" #~ msgstr " Negatīvs" #~ msgid " Mono" #~ msgstr " Melnbalts" #~ msgid " Pieces" #~ msgstr " Mozaīka" #~ msgid " Particles" #~ msgstr " Daļiņas" #, fuzzy #~ msgid "Print version" #~ msgstr "Izdrukas versija" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Video ierīce, kuru izmantot [noklusējums: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Uzņemšanas metode (1-mmap (noklusētais) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Ielādēt profilu" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview brīdinājums:" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC video skatītājs" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Video skatītājs un uzņēmējs Linux UVC draiverim" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Skaņa" #~ msgid " Sound" #~ msgstr " Skaņa" #~ msgid " Show VU meter" #~ msgstr " Rādīt skaņas līmeņa indikatoru" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio efekti ----" #~ msgid "Save File" #~ msgstr "Saglabāt failu" #~ msgid "codec values" #~ msgstr "kodeka vērtības" #~ msgid "Cap. Video" #~ msgstr "Uzņemt video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer vadīklas" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās atvērt ierīci" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Lūdzu, pārliecinieties, vai kamera ir pievienota\n" #~ "un pareizais draiveris ir instalēts." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC paplašinājumu vadīklas" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Paplašinājumu vadīklas tika pievienotas UVC draiverim" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "UVC paplašinājumu vadīklas" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Gadījās kļūda, pievienojot paplašinājumu\n" #~ "vadīklas UVC draiverim\n" #~ "Pārliecinieties, vai guvcview tiek palaists kā root (vai sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās iestatīt guvcview derīgu video plūsmu" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Lūdzu, pārliecinieties, vai ierīces draiveris ir v4l2 saderīgs\n" #~ "un vai tas ir pareizi instalēts." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās sākt ar minimālajiem iestatījumiem" #~ msgid "Please reconnect your camera." #~ msgstr "Lūdzu, pārvienojiet kameru." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās vaicājums ierīces iespējām" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Pārliecinieties, ka ierīces draiveris atbalsta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Lasīšanas metodes kļūda" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Lūdzu, mēģiniet mmap, --capture_method=1 vietā." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās piešķirt buferi" #~ msgid "Please try restarting your system." #~ msgstr "Lūdzu, mēģiniet pārstartēt sistēmu." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās izveidot video dzīslu" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Lūdzu, paziņojiet http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Attēlo atkļūdošanas informāciju" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Iziet pēc UVC paplašinājuma vadīklu pievienošanas (nepieciešams root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Nestraumēt video (tikai attēla vadīklas)" #~ msgid "Don't display a GUI" #~ msgstr "Neattēlot saskarni" #~ msgid "Configuration file" #~ msgstr "Konfigurācijas fails" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aparatūras paātrinājums (ieslēgts(1) | izslēgts(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pikseļa formāts(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Kadra lielums, noklusējums: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Attēlu uzņemšanas intervāls sekundēs" #~ msgid "Number of Pictures to capture" #~ msgstr "Attēlu skaits, cik uzņemt" #~ msgid "Video File name (capture from start)" #~ msgstr "Video faila nosaukums (uzņemt no sākuma)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video uzņemšanas laiks (sekundēs)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Iziet guvcview pēc video aizvēršanas" #~ msgid "Number of initial frames to skip" #~ msgstr "Pirmreizējo kadru skaits, ko izlaist" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Rādīt kadrātruma vērtību (ieslēgts(1) | izslēgts(0))" #~ msgid "Load Profile at start" #~ msgstr "Ielādēt profilu sākot" #~ msgid "- local options" #~ msgstr "- lokālās opcijas" #~ msgid "Cap. Image" #~ msgstr "Uzņemt attēlu" #~ msgid "Not enough free space left on disk" #~ msgstr "Diskā nav pietiekami daudz brīvas vietas" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - nesaspiests YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - nesaspiests BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - avi formāts" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska formāts" #~ msgid "WEBM - format" #~ msgstr "WEBM - formāts" #~ msgid " Show" #~ msgstr " Rādīt" #~ msgid "Quality:" #~ msgstr "Kvalitāte:" guvcview-2.0.2+debian/po/gview_v4l2core/nl.po000066400000000000000000000503151256377215300210370ustar00rootroot00000000000000# Dutch translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-04 16:28+0000\n" "Last-Translator: Pjotr12345 \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Bedieningsknoppen voor gebruiker" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helderheid" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tint" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Verzadiging" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Scherpte" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Achtergrondverlichtingscompensatie" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequentie van de elektrische aansluiting" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Waas, automatisch" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Scherpstelling, automatisch" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Handmatige modus" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatische modus" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Voorkeurmodus van sluiter" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Voorkeurmodus van lensopening" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Zwartniveau" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Witbalans, automatisch" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Pas witbalans toe" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Roodbalans" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauwbalans" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichting" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Versterking, automatisch" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Versterking" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontaal spiegelen" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Verticaal spiegelen" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontaal centreren" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Verticaal centreren" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Kleurdoder" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Kleureffecten" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Bedieningsknoppen voor camera" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Autobelichting" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtingstijd, absoluut" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtingstijd, dynamische opnamesnelheid" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Meedraaien, relatief" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Kantelen, relatief" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Meedraaien, terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Kantelen, terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Meedraaien, absoluut" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Scherpstellen, absoluut" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Scherpstellen, relatief" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Scherpstellen, automatisch" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoomen, absoluut" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoomen, relatief" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoomen, bij voortduring" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privéleven" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichting, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichting, auto-prioriteit" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichting (absoluut)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Witbalanstemperatuur, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Witbalanstemperatuur" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Witbalans-onderdeel, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Blauw witbalansonderdeel" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Rood witbalansonderdeel" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Scherpstelling" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Scherpstelling (absoluut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Uit" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Aan" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Knipperen" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Meedraaien (relatief)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Kantelen (relatief)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Meedraaien terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Kantelen terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Scherpstellen (absoluut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1-modus" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1-frequentie" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Videobewerking uitschakelen" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Ruwe bits per pixel" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - niet-gecomprimeerd (16 bit)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Camera-uitvoer:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - gecomprimeerd" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 formaat" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "Audio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Invoerapparaat:" #~ msgid "Sample Rate:" #~ msgstr "Samplesnelheid:" #~ msgid "Dev. Default" #~ msgstr "Dev. standaard" #~ msgid "Channels:" #~ msgstr "Kanalen:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Videofilters ----" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid " Reverb" #~ msgstr " Weergalm" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #~ msgid "Stop Video (V)" #~ msgstr "Stop Video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Video Vastleggen (V)" #~ msgid "Error" #~ msgstr "Fout" #, fuzzy #~ msgid "_Cancel" #~ msgstr "annuleren" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "U hebt meer dan één video-apparaat geïnstalleerd.\n" #~ "Wilt u een ander proberen?\n" #~ msgid "Device:" #~ msgstr "Apparaat:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview video-opname" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Stop Auto (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Afbeelding vastleggen (I)" #~ msgid "Image Controls" #~ msgstr "Fotobedieningsknoppen" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Bedieningsknoppen voor gebruiker" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Bedieningsknoppen voor gebruiker" #~ msgid "Save Profile" #~ msgstr "Profiel opslaan" #~ msgid "Load Profile" #~ msgstr "Profiel laden" #~ msgid "File Format:" #~ msgstr "Bestandtype:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Naam van fotobestand" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Raw Image (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Naam van fotobestand" #~ msgid "start new" #~ msgstr "start nieuw" #~ msgid "restart" #~ msgstr "herstarten" #~ msgid "new" #~ msgstr "nieuw" #~ msgid "cancel" #~ msgstr "annuleren" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "nieuw proces starten of herstarten?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "audio codec-waarden" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " encoder fps: \n" #~ " (0 - gebruik fps-comboboxwaarde)" #~ msgid " monotonic pts" #~ msgstr " monotonic pts" #~ msgid "bit rate: " #~ msgstr "bitrate: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "diagrootte: " #~ msgid "pre dia size: " #~ msgstr "pre-diagrootte: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "laatste telling van voorspeller: " #~ msgid "gop size: " #~ msgstr "gop-grootte: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me-methode: " #~ msgid "mb decision: " #~ msgstr "mb-besluit: " #~ msgid "max B frames: " #~ msgstr "max B frames: " #~ msgid "num threads: " #~ msgstr "num threads: " #~ msgid "audio codec values" #~ msgstr "audio codec-waarden" #~ msgid "sample format: " #~ msgstr "bestandtype van voorbeeld: " #~ msgid "Settings" #~ msgstr "Instellingen" #~ msgid "Hardware Defaults" #~ msgstr "Apparatuurstandaarden" #~ msgid "Camera Button" #~ msgstr "Cameraknop" #~ msgid "Capture Image" #~ msgstr "Afbeelding vastleggen" #~ msgid "Capture Video" #~ msgstr "Video vastleggen" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "Bestand" #~ msgid "Increment Filename" #~ msgstr "Bestandnaam aanvullen" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Videocodec" #~ msgid "Video Codec Properties" #~ msgstr "Eigenschappen van videocodec" #~ msgid "Audio Codec" #~ msgstr "Audiocodec" #~ msgid "Audio Codec Properties" #~ msgstr "Eigenschappen van audiocodec" #~ msgid "Left" #~ msgstr "Links" #~ msgid "Right" #~ msgstr "Rechts" #~ msgid "Down" #~ msgstr "Omlaag" #~ msgid "Up" #~ msgstr "Omhoog" #~ msgid "8 bit" #~ msgstr "8-bit" #~ msgid "12 bit" #~ msgstr "12-bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Automatische scherpstelling (voortdurend)" #~ msgid "set Focus" #~ msgstr "scherpstelling instellen" #, fuzzy #~ msgid "_Apply" #~ msgstr "Toepassen" #~ msgid "Frame Rate:" #~ msgstr "Beelden per seconde:" #~ msgid "Resolution:" #~ msgstr "Resolutie:" #~ msgid "Camera Output:" #~ msgstr "Camera-uitvoer:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Videofilters ----" #~ msgid " Mirror" #~ msgstr " Spiegelen" #~ msgid " Invert" #~ msgstr " Omdraaien" #~ msgid " Negative" #~ msgstr " Negatief" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Pieces" #~ msgstr " Delen" #~ msgid " Particles" #~ msgstr " Deeltjes" #, fuzzy #~ msgid "Print version" #~ msgstr "Drukt versie af" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Te gebruiken video-apparaat [standaard: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Opnamemethode (1-mmap (standaard) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Profiel laden" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview -waarschuwing:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "video wordt vastgelegd naar" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC videokijker" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "" #~ "Een programma voor het bekijken en opnemen van video, voor het " #~ "Linuxstuurprogramma uvc" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Geluid" #~ msgid " Show VU meter" #~ msgstr " VU-meter tonen" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio-effecten ----" #~ msgid "Save File" #~ msgstr "Bestand opslaan" #~ msgid "codec values" #~ msgstr "codecwaarden" #~ msgid "capturing photo to" #~ msgstr "foto wordt vastgelegd naar" #~ msgid "Cap. Video" #~ msgstr "Video opn." #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCkijker bedieningsknoppen" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan apparaat niet openen" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Zorg er a.u.b. voor, dat de camera is verbonden\n" #~ "en dat het juiste stuurprogramma is geïnstalleerd." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Bedieningsknoppen voor UVC Extensie" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "" #~ "Bedieningsknoppen voor extensie werden toegevoegd aan het UVC-" #~ "stuurprogramma" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Bedieningsknoppen voor UVC Extensie" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Er is een fout opgetreden tijdens het\n" #~ "toevoegen van bedieningsknoppen aan\n" #~ "het UVC-stuurprogramma.\n" #~ "Zorg ervoor dat u guvcview draait als root\n" #~ "(of met sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen geldige videostroom instellen voor guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Zorg ervoor dat het stuurprogramma van uw\n" #~ "apparaat voldoet aan v4l2 en dat het\n" #~ "correct is geïnstalleerd." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan niet opstarten met minimale\n" #~ "instellingen" #~ msgid "Please reconnect your camera." #~ msgstr "Sluit uw camera opnieuw aan a.u.b." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kon de capaciteiten van het\n" #~ "apparaat niet opvragen" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Zorg ervoor dat het stuurprogramma v4l2 ondersteunt." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Leesmethodefout" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Probeer in plaats daarvan a.u.b. mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen buffers toewijzen" #~ msgid "Please try restarting your system." #~ msgstr "Probeer a.u.b. of het helpt wanneer u uw systeem herstart." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen videodraad maken" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Meld het a.u.b. aan http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Toont foutopsporingsinformatie" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Afsluiten na het toevoegen van bedieningsknoppen voor UVC-extensie (heeft " #~ "root/sudo nodig)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Maak geen videostroom (alleen fotobedieningsknoppen)" #~ msgid "Don't display a GUI" #~ msgstr "Toon geen grafische schil" #~ msgid "Configuration file" #~ msgstr "Configuratiebestand" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardwareversnelling (aan(1) | uit(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Beeldgrootte, standaard: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Tussenpoze tussen foto's maken, in seconden" #~ msgid "Number of Pictures to capture" #~ msgstr "Aantal te maken foto's" #~ msgid "Video File name (capture from start)" #~ msgstr "Naam van videobestand (opnemen vanaf begin)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video-opnametijd (in seconden)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Sluit guvcview af na sluiten van film" #~ msgid "Number of initial frames to skip" #~ msgstr "Aantal filmbeeldjes dat in het begin moet worden overgeslagen" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Toon FPS-waarde (aan(1) | uit (0))" #~ msgid "Load Profile at start" #~ msgstr "Profiel laden bij start" #~ msgid "- local options" #~ msgstr "- plaatselijke opties" #~ msgid "Cap. Image" #~ msgstr "Foto maken" #~ msgid "Not enough free space left on disk" #~ msgstr "Niet genoeg vrije ruimte over op schijf" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - ongecomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - ongecomp BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - aviformaat" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroskaformaat" #~ msgid "WEBM - format" #~ msgstr "WEBM - formaat" #~ msgid " Show" #~ msgstr " Tonen" #~ msgid "Quality:" #~ msgstr "Kwaliteit:" guvcview-2.0.2+debian/po/gview_v4l2core/pl.po000066400000000000000000000325261256377215300210450ustar00rootroot00000000000000# Polish translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Adam Czabara \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kontrolki użytkownika" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jasność:" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Barwa:" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Nasycenie" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostrość" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Kompensacja oświetlenia tła" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Częstotliwość lini zasilania" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Barwa: Automatycznie" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Ostrość, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Tryb ręczny" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Tryb automatyczny" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Priorytet migwaki" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Priorytet przysłony" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Poziom czerni" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Automatyczny balans bieli" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balans bieli" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balans czerwieni" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balans niebieskiego" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Automatyczna ziarnistość" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Wzmocnienie" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Odbicie poziome" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Odbicie pionowe" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Wyśrodkowanie poziome" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Wyśrodkowanie pionowe" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatyczna kontrola kluczowania" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Usunięcie koloru" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekty kolorów" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrola kamery" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatyczna ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Absolutny czas ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "dynamiczna ilośc klatek/s ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Względne Pan" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Przechylenie względne" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Reset Pan" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Reset nachylenia" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Absolutny Pan" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ostrośc absolutna" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ostrość względna" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Automatyczna ostrość" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Absolutny zoom" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Względny zoom" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom ciągły" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Prywatność" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Auto ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Auto priorytet ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ekspozycja (absolutna)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatyczny balans bieli temperatury" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura balansu bieli" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatyczny komponent balansu bieli" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Komponent balansu bieli - niebieskiego" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Komponent balansu bieli - czerwonego" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Ostrość" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ostrość (absolutna)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Tryb automatyczny" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "Audio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Urządzenie wejścia:" #~ msgid "Sample Rate:" #~ msgstr "Próbkowanie audio:" #~ msgid "Dev. Default" #~ msgstr "Urzadzenie domyślne" #~ msgid "Channels:" #~ msgstr "Kanały:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtry wideo ----" #~ msgid " Echo" #~ msgstr " Echo" #~ msgid "Stop Video (V)" #~ msgstr "Stop Video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Przechwicenie Wideo (V)" #~ msgid "Device:" #~ msgstr "Urządzenie:" #~ msgid "Guvcview Video Capture" #~ msgstr "Przechwytywanie wideo Guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Stop Auto (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Przechwycenie obrazu (I)" #~ msgid "Image Controls" #~ msgstr "Kontrola obrazu" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Kontrolki użytkownika" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Kontrolki użytkownika" #, fuzzy #~ msgid "video codec values" #~ msgstr "wartości kodeka audio" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " enkoder fps: \n" #~ " (0 - użycie wartości fps combobox)" #~ msgid "bit rate: " #~ msgstr "bit rate: " #~ msgid "qmax: " #~ msgstr "qmaks: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "rozmiar dia: " #~ msgid "pre dia size: " #~ msgstr "rozmiar pre dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "gop size: " #~ msgstr "rozmiar gop: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "max B frames: " #~ msgstr "max klatek B: " #~ msgid "audio codec values" #~ msgstr "wartości kodeka audio" #~ msgid "Left" #~ msgstr "Lewy" #~ msgid "Right" #~ msgstr "Prawy" #~ msgid "Down" #~ msgstr "Dół" #~ msgid "Up" #~ msgstr "Góra" #, fuzzy #~ msgid "_Apply" #~ msgstr "Zastosuj" #~ msgid "Frame Rate:" #~ msgstr "Klatki na sekundę:" #~ msgid "Resolution:" #~ msgstr "Rozdzielczość:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtry wideo ----" #~ msgid " Invert" #~ msgstr " Odwrócenie" #~ msgid " Negative" #~ msgstr " Negatyw" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Dźwięk" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efekty audio ----" #~ msgid "Save File" #~ msgstr "Zapisz Plik" #~ msgid "codec values" #~ msgstr "wartości kodeków" #~ msgid "Cap. Video" #~ msgstr "Przechwicenie Wideo" #~ msgid "GUVCViewer Controls" #~ msgstr "Kontrolki GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można otworzyć urządzenia" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Proszę się upewnić, czy kamera jest podłączona\n" #~ "oraz czy jest zainstalowany odpowiedni sterownik." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Kontrolki rozszerzenia UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrolki rozszerzenia zostały dodane do steronika UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Kontrolki rozszerzenia UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Wystąpił błąd podczas dodawania kontrolek\n" #~ "rozszerzenia sterownika UVC\n" #~ "Guvciew musi być uruchomiony w trybie root(lub sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "Nie można ustanowić prawidłowego strumienia wideo dla guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Upewnij się, że twoje urządzenie jest kompatybilne z v4l2\n" #~ "i jest poprawnie zainstalowane." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można uruchomić minimalnej konfiguracji" #~ msgid "Please reconnect your camera." #~ msgstr "Ponownie podłącz kamerę." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można pobrać listy kompatybilnych urządzeń" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Upewnij się, że urządzenie obsługuje v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Błąd metody odczytu" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Proszę spróbować mmap zamiast (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Błąd alokacji buforów" #~ msgid "Please try restarting your system." #~ msgstr "Proszę zrestartować system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można utworzyć wątku wideo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Proszę zgłosić na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Wyświetlanie informacji debugowania" #~ msgid "Cap. Image" #~ msgstr "Przechwycenie obrazu" #~ msgid " Show" #~ msgstr " Pokaz" #~ msgid "Quality:" #~ msgstr "Jakość:" guvcview-2.0.2+debian/po/gview_v4l2core/pt.po000066400000000000000000000464371256377215300210630ustar00rootroot00000000000000# translation of pt_PT.po to Portuguese # translation of guvcview to Portuguese # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # # guvcview , 2008. msgid "" msgstr "" "Project-Id-Version: pt_PT\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlos de utilizador" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Cor" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação da iluminação" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequência da linha elétrica" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Cor automática" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem automática" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nível do preto" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos automático" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balancear brancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balancear vermelhos" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balancear azuis" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Inversão horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Inversão vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Remoção de cores" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlos de câmara" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição com fotogramas dinâmicos" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Rotação relativa" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação relativa" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Restaurar rotação" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Rotação absoluta" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focagem absoluta" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focagem relativa" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focagem automática" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Ampliação absoluta" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Ampliação relativa" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Ampliação continua" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esxposição com prioridade automática" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição absoluta" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanceamento de brancos automático" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura do balanceamento de brancos" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de brancos automática" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente vermelho" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focagem" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focagem absoluta" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Desligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Ligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Intermitente" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Automático" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotação (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinação (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Restaurar rotação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Focagem (absoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequência LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Desativar processamento vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits por pixel (Raw)" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - não comprimido (16 bit)" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Saída da câmara:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - com compressão" #~ msgid "MPEG video 1" #~ msgstr "MPEG vídeo 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - Vídeo flash 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - vídeo wma 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - vídeo MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "Áudio API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Dispositivo de som:" #~ msgid "Sample Rate:" #~ msgstr "Frequência:" #~ msgid "Dev. Default" #~ msgstr "Automático" #~ msgid "Channels:" #~ msgstr "Canais:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - estéreo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtros de vídeo ----" #~ msgid " Echo" #~ msgstr " Eco" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Ruído" #~ msgid " WahWah" #~ msgstr " WhaWah" #~ msgid " Ducky" #~ msgstr " Patinho" #~ msgid "Stop Video (V)" #~ msgstr "Parar Video (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Cap. Video (V)" #~ msgid "Error" #~ msgstr "Erro" #, fuzzy #~ msgid "_Cancel" #~ msgstr "cancelar" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Parece que possui mais do que 1 dispositivo de vídeo.\n" #~ "Quer tentar outro?\n" #~ msgid "Device:" #~ msgstr "Dispositivo:" #~ msgid "Guvcview Video Capture" #~ msgstr "Captura de vídeo Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Parar Auto (I):" #~ msgid "Cap. Image (I)" #~ msgstr "Cap. Imagem (I)" #~ msgid "Image Controls" #~ msgstr "Controlos de imagem" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Controlos de utilizador" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Controlos de utilizador" #~ msgid "Save Profile" #~ msgstr "Gravar Perfil" #~ msgid "Load Profile" #~ msgstr "Carregar Perfil" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Nome do ficheiro" #, fuzzy #~ msgid "Video file name" #~ msgstr "Nome do ficheiro" #~ msgid "start new" #~ msgstr "iniciar novo" #~ msgid "restart" #~ msgstr "reiniciar" #~ msgid "new" #~ msgstr "novo" #~ msgid "cancel" #~ msgstr "cancelar" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "quer iniciar um novo processo ou reiniciar?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "valores do codificador áudio" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " fps do codificador: \n" #~ " (0 - utilizar valor da caixa de combinação)" #~ msgid " monotonic pts" #~ msgstr " pts monótonos" #~ msgid "bit rate: " #~ msgstr "taxa de dados " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "tamanho dia: " #~ msgid "pre dia size: " #~ msgstr "tamanho pré-dia: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "última contagem: " #~ msgid "gop size: " #~ msgstr "tamanho gop: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "método me: " #~ msgid "mb decision: " #~ msgstr "decisão mb: " #~ msgid "max B frames: " #~ msgstr "max B frames: " #~ msgid "num threads: " #~ msgstr "processos: " #~ msgid "audio codec values" #~ msgstr "valores do codificador áudio" #~ msgid "Settings" #~ msgstr "Definições" #~ msgid "Hardware Defaults" #~ msgstr "Pré-definição de Hardware" #~ msgid "Camera Button" #~ msgstr "Botão da Câmera" #~ msgid "Capture Image" #~ msgstr "Capturar Imagem" #~ msgid "Capture Video" #~ msgstr "Capturar Video" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "Ficheiro" #~ msgid "Increment Filename" #~ msgstr "Increm. nome do ficheiro" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Codec de Video" #~ msgid "Video Codec Properties" #~ msgstr "Propr. Codec de Video" #~ msgid "Audio Codec" #~ msgstr "Codec de Audio" #~ msgid "Audio Codec Properties" #~ msgstr "Propr. Codec de Audio" #~ msgid "Left" #~ msgstr "Esquerda" #~ msgid "Right" #~ msgstr "Direita" #~ msgid "Down" #~ msgstr "Baixo" #~ msgid "Up" #~ msgstr "Cima" #~ msgid "8 bit" #~ msgstr "8 bits" #~ msgid "12 bit" #~ msgstr "12 bits" #~ msgid "Auto Focus (continuous)" #~ msgstr "Foco automático (continuo)" #~ msgid "set Focus" #~ msgstr "Focar" #, fuzzy #~ msgid "_Apply" #~ msgstr "Aplicar" #~ msgid "Frame Rate:" #~ msgstr "Taxa de imagens:" #~ msgid "Resolution:" #~ msgstr "Resolução:" #~ msgid "Camera Output:" #~ msgstr "Saída da câmara:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtros de vídeo ----" #~ msgid " Mirror" #~ msgstr " Espelho" #~ msgid " Invert" #~ msgstr " Invertido" #~ msgid " Negative" #~ msgstr " Negativo" #~ msgid " Mono" #~ msgstr " Cinza" #~ msgid " Pieces" #~ msgstr " Pedaços" #~ msgid " Particles" #~ msgstr " Partículas" #, fuzzy #~ msgid "Print version" #~ msgstr "Mostra a versão" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Dispositivo de vídeo [predefinição: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Método de captura (1-mmap (predefinido) 2 -leitura)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Carregar Perfil" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Alerta do Guvcview:" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "Visualizador de vídeo GTK UVC" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "" #~ "Um visualizador e capturador de de vídeo para o controlador linux uvc" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC - (faac)" #~ msgid "Audio" #~ msgstr "Áudio" #~ msgid " Sound" #~ msgstr " Som" #~ msgid " Show VU meter" #~ msgstr " Mostrar medidor VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efeitos áudio ----" #~ msgid "Save File" #~ msgstr "Gravar ficheiro" #~ msgid "codec values" #~ msgstr "valores do codificador" #~ msgid "Cap. Video" #~ msgstr "Capturar vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controlos do Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível ligar à câmara" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Verifique a ligação à câmara e certifique-se\n" #~ "que tem o controlador instalado" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controlos dinâmicos UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Os controlos dinâmicos foram adicionados ao controlador UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Controlos dinâmicos UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocorreu um erro ao adicionar os controlos\n" #~ "dinâmicos ao controlador UVC\n" #~ "Verifique se iniciou guvcview como root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível definir um formato de vídeo válido" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Certifique-se que a câmara é compatível com\n" #~ "o v4l2 e que está instalada corretamente" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível iniciar a configuração mínima" #~ msgid "Please reconnect your camera." #~ msgstr "Deve remover e ligar novamente a câmara" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível verificar as propriedades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Certifique-se que o dispositivo tem suporte ao v4l2" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Erro no método de leitura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Tente com mmap (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível alocar os \"buffers\"" #~ msgid "Please try restarting your system." #~ msgstr "Por favor reinicie o sistema" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível criar processo de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Reporte este erro em http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Mostrar informações de depuração" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Sair após adicionar os controlos dinâmicos ao UVC (requer root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Não emitir vídeo (só controlo de imagem)" #~ msgid "Don't display a GUI" #~ msgstr "Não mostrar interface" #~ msgid "Configuration file" #~ msgstr "Ficheiro de configuração" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aceleração de vídeo (ativa (1) | inativa (0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formatos pixel (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Resolução (predefinido: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo entre capturas (em segundos)" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Nome do ficheiro (capturar ao iniciar)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tempo de captura vídeo (em segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Sair do Guvcview ao fechar o vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Número de fotogramas iniciais a ignorar" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Mostrar valor FPS (ativo (1) | inativo (0))" #~ msgid "Load Profile at start" #~ msgstr "Carregar perfil ao iniciar" #~ msgid "- local options" #~ msgstr "- opções locais" #~ msgid "Cap. Image" #~ msgstr "Capturar imagem" #~ msgid "Not enough free space left on disk" #~ msgstr "O espaço livre do disco não é suficiente" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV sem compressão" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP sem compressão" #~ msgid "AVI - avi format" #~ msgstr "AVI - vídeo avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Vídeo mkv" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Qualidade:" guvcview-2.0.2+debian/po/gview_v4l2core/pt_BR.po000066400000000000000000000464271256377215300214450ustar00rootroot00000000000000# translation of pt_BR.po to Portuguese # translation of guvcview to Portuguese # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Djavan Fagundes , 2011. msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-08-25 02:20+0000\n" "Last-Translator: Celio Alves \n" "Language-Team: Brazilian Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Project-Style: default\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles do usuário" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação de Luz" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequência da linha de transmissão" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, Automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem, auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Níveis de preto" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Fazer balanço de brancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balanço do vermelho" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balanço do azul" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho, automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Virar horizontalmente" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Virar verticalmente" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de Chroma" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Removedor de cores" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de câmera" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição, absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição, taxa de quadros dinâmicos" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Deslocamento, relativo" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação, relativo" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Deslocamento, restaurar" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinação, restaurar" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Deslocamento, absoluto" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, contínuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposição, prioridade auto" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição (absoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanço de branco, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balanço de branco temperatura" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de cor, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balanço de branco componente azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balando de branco componente vermelho" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Desligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Ligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Intermitente" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Deslocamento (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinação (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Restaurar deslocamento" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequência LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Parar processamento de vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits brutos por pixel" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Saída de câmera:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - com compressão" #~ msgid "MPEG video 1" #~ msgstr "Vídeo MPEG 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - vídeo flash 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPEG vídeo 2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "API de áudio:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Dispositivo de entrada:" #~ msgid "Sample Rate:" #~ msgstr "Taxa de amostragem:" #~ msgid "Dev. Default" #~ msgstr "Padrão" #~ msgid "Channels:" #~ msgstr "Canais:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Filtros de vídeo ----" #~ msgid " Echo" #~ msgstr " Eco" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Ruído" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Patinho" #~ msgid "Stop Video (V)" #~ msgstr "Parar vídeo (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Cap. vídeo (V)" #~ msgid "Error" #~ msgstr "Erro" #, fuzzy #~ msgid "_Cancel" #~ msgstr "cancelar" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Foram detectados múltiplos dispositivos de vídeo.\n" #~ "Quer tentar outro?\n" #~ msgid "Device:" #~ msgstr "Dispositivo:" #~ msgid "Guvcview Video Capture" #~ msgstr "Capturador de vídeo Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Parar auto (I):" #~ msgid "Cap. Image (I)" #~ msgstr "Cap. imagem (I)" #~ msgid "Image Controls" #~ msgstr "Controles de imagem" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Controles do usuário" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Controles do usuário" #~ msgid "Save Profile" #~ msgstr "Salvar perfil" #~ msgid "Load Profile" #~ msgstr "Carregar Perfil" #~ msgid "File Format:" #~ msgstr "Formato do arquivo:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Nome do arquivo de imagem" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Imagem Raw (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Nome do arquivo de imagem" #~ msgid "start new" #~ msgstr "iniciar novo" #~ msgid "restart" #~ msgstr "reiniciar" #~ msgid "new" #~ msgstr "novo" #~ msgid "cancel" #~ msgstr "cancelar" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "lançar novo processo ou recomeçar?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "valores do codec de áudio" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " codificador fps: \n" #~ " (0 - use o valor fps da caixa de marcação)" #~ msgid " monotonic pts" #~ msgstr " pts monotonico" #~ msgid "bit rate: " #~ msgstr "taxa de bits: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "qdiff max: " #~ msgid "dia size: " #~ msgstr "tamanho do dia: " #~ msgid "pre dia size: " #~ msgstr "tamanho do diâ pré: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "última contagem preditor: " #~ msgid "gop size: " #~ msgstr "tamanho do gop: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "método me: " #~ msgid "mb decision: " #~ msgstr "decisão mb: " #~ msgid "max B frames: " #~ msgstr "Max quadros B: " #~ msgid "num threads: " #~ msgstr "num threads: " #~ msgid "audio codec values" #~ msgstr "valores do codec de áudio" #~ msgid "Settings" #~ msgstr "Definições" #~ msgid "Hardware Defaults" #~ msgstr "Pré-definição de Hardware" #~ msgid "Camera Button" #~ msgstr "Botão da Câmera" #~ msgid "Capture Image" #~ msgstr "Capturar Imagem" #~ msgid "Capture Video" #~ msgstr "Capturar Video" #~ msgid "Photo" #~ msgstr "Foto" #~ msgid "File" #~ msgstr "Ficheiro" #~ msgid "Increment Filename" #~ msgstr "Increm. nome do ficheiro" #~ msgid "Video" #~ msgstr "Video" #~ msgid "Video Codec" #~ msgstr "Codec de Video" #~ msgid "Video Codec Properties" #~ msgstr "Propr. Codec de Video" #~ msgid "Audio Codec" #~ msgstr "Codec de Audio" #~ msgid "Audio Codec Properties" #~ msgstr "Propr. Codec de Audio" #~ msgid "Left" #~ msgstr "Esquerda" #~ msgid "Right" #~ msgstr "Direita" #~ msgid "Down" #~ msgstr "Baixo" #~ msgid "Up" #~ msgstr "Cima" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Focagem automática (contínua)" #~ msgid "set Focus" #~ msgstr "Definir foco" #, fuzzy #~ msgid "_Apply" #~ msgstr "Aplicar" #~ msgid "Frame Rate:" #~ msgstr "Taxa de quadros:" #~ msgid "Resolution:" #~ msgstr "Resolução:" #~ msgid "Camera Output:" #~ msgstr "Saída de câmera:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Filtros de vídeo ----" #~ msgid " Mirror" #~ msgstr " Espelho" #~ msgid " Invert" #~ msgstr " Invertido" #~ msgid " Negative" #~ msgstr " Negativo" #~ msgid " Mono" #~ msgstr " Cinza" #~ msgid " Pieces" #~ msgstr " Pedaços" #~ msgid " Particles" #~ msgstr " Partículas" #, fuzzy #~ msgid "Print version" #~ msgstr "Exibe a versão" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Dispositivo de vídeo para usar [padrão: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Método de captura (1-mmap (padrão) 2-leitura)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Carregar Perfil" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Alerta Guvcview:" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "Visualizador de vídeo GTK UVC" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Um visualizador de vídeos e captura para o driver linux uvc" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "Audio" #~ msgstr "Áudio" #~ msgid " Sound" #~ msgstr " Som" #~ msgid " Show VU meter" #~ msgstr " Mostrar Volume" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efeitos de áudio ----" #~ msgid "Save File" #~ msgstr "Salvar arquivo" #~ msgid "codec values" #~ msgstr "valores do codec" #~ msgid "Cap. Video" #~ msgstr "Cap. vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controles do GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível conectar a câmera" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Por favor, verifique a conexão\n" #~ "e se o driver correto está instalado." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Extensão de controles UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "As extensões de controles foram adicionadas ao driver UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Extensões de controles UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocorreu um erro ao adicionar as extensões de\n" #~ "controles ao driver UVC\n" #~ "Verifique se iniciou o guvcview como root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível definir um fluxo de vídeo para o guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Verifique se o driver é compatível com v4l2\n" #~ "e se este se está instalado corretamente." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview erro:\n" #~ "\n" #~ "Não foi possível iniciar com as definições mínimas" #~ msgid "Please reconnect your camera." #~ msgstr "Por favor, reconecte sua câmera." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview erro:\n" #~ "\n" #~ "Não foi possível consultar as propriedades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Por favor, verifique se o driver oferece suporte v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Erro do método de leitura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Por favor, tente o mmap no lugar (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível alocar Buffers" #~ msgid "Please try restarting your system." #~ msgstr "Por favor, tente reiniciar o sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro de Guvcview:\n" #~ "\n" #~ "Não foi possível criar o thread de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Por favor, reporte em http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Displays debug information" #~ msgstr "Mostra informação de depuração" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Sair após adicionar extensão de controles UVC (precisa de root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Desabilitar o fluxo de vídeo (apenas controles de imagens)" #~ msgid "Don't display a GUI" #~ msgstr "Não mostrar GUI" #~ msgid "Configuration file" #~ msgstr "Arquivo de configuração" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aceleração de hardware (habilitado(1) | desabilitado(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Tamanho do quadro, padrão: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo de captura de imagens em segundos" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Arquivo de vídeo (captura ao iniciar)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tempo de captura de vídeo (em segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Termina o guvcview depois de fechar o vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Numero inicial de quadros a ignorar" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Apresentar o valor FPS (habilitado(1) | desabilitado(0))" #~ msgid "Load Profile at start" #~ msgstr "Carrega perfil ao iniciar" #~ msgid "- local options" #~ msgstr "- opções locais" #~ msgid "Cap. Image" #~ msgstr "Cap. imagem" #~ msgid "Not enough free space left on disk" #~ msgstr "Sem espaço livre suficiente no disco" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - sem compressão YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - Sem compressão BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - formato avi" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Qualidade:" guvcview-2.0.2+debian/po/gview_v4l2core/ru.po000066400000000000000000000562111256377215300210550ustar00rootroot00000000000000# Copyright (C) 2009 Paulo Assis # This file is distributed under the same license as the guvcview package. # # Roustam Ghizdatov , 2009. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-06 13:32+0000\n" "Last-Translator: Николай Авдеев (NickKolok, Nikolay Avdeev) \n" "Language-Team: Russian <>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Настройки пользователя" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Яркость" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контрастность" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Оттенок" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Насыщенность" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Резкость" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гамма" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Компенсация ярких участков" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Частота в электросети" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Оттенок, Автоматически" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Фокус, авто" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручной режим" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Авторежим" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Режим приоритета затвора" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Режим приоритета диафрагмы" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Уровень чёрного" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Баланс белого, Автоматически" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Сбалансировать белый цвет" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Баланс красного" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Баланс синего" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Экспозиция" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Усиление, автоматически" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Усиление" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Отразить по горизонтали" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Отразить по вертикали" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Горизонтальный центр" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Вертикальный центр" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Обесцвечиватель" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Цветовые эффекты" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Настройки камеры" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Авто выдержка" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Время выдержки, Абсолютное" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Выдержка, Динамичная частота кадров" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Фокус, Совершенный" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Фокус, Относительный" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Фокус, Автоматический" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Увеличение, Совершенное" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Увеличение, Относительное" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Увеличение, Постоянное" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Конфиденциальность" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Экспозиция, авто" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Режим частоты кадров" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Выдержка (совершенная)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Температура баланса белого, авто" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура баланса белого" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Компонент баланса белого, авто" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Синий компонент баланса белого" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Красный компонент баланса белого" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокусирование" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Фокусирование (Абсолютное)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Откл." #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Вкл." #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Мерцание" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Авто" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Гор. поворот (относит.)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Верт. поворот (относит.)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Гор. возврат" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Верт. возврат" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Фокус (абсолютный)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Режим светодиода1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Частота светодиода1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Отключение обработки видео" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Кол-во бит на пиксел" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - без сжатия (16-разрядный)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Вывод камеры:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - сжатый" #~ msgid "MPEG video 1" #~ msgstr "MPEG-видео 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - флэш-видео 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - видео Windows Media 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - формат MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Audio API:" #~ msgstr "Аудио-API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Устройство ввода:" #~ msgid "Sample Rate:" #~ msgstr "Частота дискретизации:" #~ msgid "Dev. Default" #~ msgstr "по умолчанию" #~ msgid "Channels:" #~ msgstr "Каналов:" #~ msgid "1 - mono" #~ msgstr "1 - моно" #~ msgid "2 - stereo" #~ msgstr "2 - стерео" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Видео-фильтры ----" #~ msgid " Echo" #~ msgstr " Эхо" #~ msgid " Reverb" #~ msgstr " Реверберация" #~ msgid " Fuzz" #~ msgstr " Фуз" #~ msgid " WahWah" #~ msgstr " Квакушка" #~ msgid " Ducky" #~ msgstr " Утёнок" #~ msgid "Stop Video (V)" #~ msgstr "Остановить видео (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Захв. видео (V)" #~ msgid "Error" #~ msgstr "Ошибка" #, fuzzy #~ msgid "_Cancel" #~ msgstr "Отмена" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "У вас установлен дополнительный видео прибор.\n" #~ "Хотите попробовать другой?\n" #~ msgid "Device:" #~ msgstr "Устройство:" #~ msgid "Guvcview Video Capture" #~ msgstr "Заxват видео через Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Прекратить автоматический захват (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Захв. Изображение (I)" #~ msgid "Image Controls" #~ msgstr "Регулировка изображения" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Настройки пользователя" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Настройки пользователя" #~ msgid "Save Profile" #~ msgstr "Сохранить профиль" #~ msgid "Load Profile" #~ msgstr "Загрузить профиль" #~ msgid "File Format:" #~ msgstr "Формат файла:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Имя файла изображения" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Необработанное изображение Raw Image (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Имя файла изображения" #~ msgid "start new" #~ msgstr "Запуск нового" #~ msgid "restart" #~ msgstr "перезагрузить" #~ msgid "new" #~ msgstr "Новый" #~ msgid "cancel" #~ msgstr "Отмена" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "Запустить новый процесс или перезапустить?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "значения звукового кодека" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " кодек кадров/с.: \n" #~ " (0 - использовать значение списка)" #~ msgid "bit rate: " #~ msgstr "Битрейт: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "макс. qdiff: " #~ msgid "dia size: " #~ msgstr "dia-size: " #~ msgid "pre dia size: " #~ msgstr "pre-dia-size: " #~ msgid "pre me: " #~ msgstr "pre-me: " #~ msgid "pre cmp: " #~ msgstr "pre-cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub-cmp: " #~ msgid "last predictor count: " #~ msgstr "last-predictor-count: " #~ msgid "gop size: " #~ msgstr "gop-size: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "me method: " #~ msgstr "me-method: " #~ msgid "mb decision: " #~ msgstr "mb-decision: " #~ msgid "audio codec values" #~ msgstr "значения звукового кодека" #~ msgid "sample format: " #~ msgstr "Формат сэмпла " #~ msgid "Settings" #~ msgstr "Настройки" #~ msgid "Hardware Defaults" #~ msgstr "Настройки оборудования по умолчанию" #~ msgid "Camera Button" #~ msgstr "Кнопка камеры" #~ msgid "Capture Image" #~ msgstr "Захватить изображение" #~ msgid "Capture Video" #~ msgstr "Захватить видео" #~ msgid "Photo" #~ msgstr "Фото" #~ msgid "File" #~ msgstr "Файл" #~ msgid "Increment Filename" #~ msgstr "Увеличить имя файла" #~ msgid "Video" #~ msgstr "Видео" #~ msgid "Video Codec" #~ msgstr "Видеокодек" #~ msgid "Video Codec Properties" #~ msgstr "Свойства видеокодека" #~ msgid "Audio Codec" #~ msgstr "Звуковой кодек" #~ msgid "Audio Codec Properties" #~ msgstr "Свойства звукового кодека" #~ msgid "Left" #~ msgstr "Влево" #~ msgid "Right" #~ msgstr "Вправо" #~ msgid "Down" #~ msgstr "Вниз" #~ msgid "Up" #~ msgstr "Вверх" #~ msgid "8 bit" #~ msgstr "8 бит" #~ msgid "12 bit" #~ msgstr "12 бит" #~ msgid "Auto Focus (continuous)" #~ msgstr "Автофокусировка (непрерывная)" #~ msgid "set Focus" #~ msgstr "Установка фокуса" #, fuzzy #~ msgid "_Apply" #~ msgstr "Применить" #~ msgid "Frame Rate:" #~ msgstr "Частота кадров:" #~ msgid "Resolution:" #~ msgstr "Разрешение:" #~ msgid "Camera Output:" #~ msgstr "Вывод камеры:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Видео-фильтры ----" #~ msgid " Mirror" #~ msgstr " Гор. отражение" #~ msgid " Invert" #~ msgstr " Верт. отражение" #~ msgid " Negative" #~ msgstr " Негатив" #~ msgid " Mono" #~ msgstr " Чёрно-белое" #~ msgid " Pieces" #~ msgstr " Мозаика" #, fuzzy #~ msgid "Print version" #~ msgstr "Показывает версию" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Используемое видео-устройство (по умолчанию /dev/video0)" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Метод захвата (1 - mmap (по умолчанию) 2-читать)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Загрузить профиль" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview предупреждение:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "захват видео в" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC видео обозреватель" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Программа просмотра и записи видео для драйвера Linux UVC" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Звук" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid " Show VU meter" #~ msgstr " Отображать значение VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Аудио-эффекты ----" #~ msgid "Save File" #~ msgstr "Сохранить файл" #~ msgid "codec values" #~ msgstr "Параметры кодека" #~ msgid "capturing photo to" #~ msgstr "захват фото в" #~ msgid "Cap. Video" #~ msgstr "Захв. видео" #~ msgid "GUVCViewer Controls" #~ msgstr "Панель управления программы GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось открыть устройство" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Пожалуйста убедитесь в том, что камера подключена\n" #~ "и драйвер установлен корректно." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "Управление UVC расширениями" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Управления расширениями был длбавлен к драйверу UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Управление UVC расширениями" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Произошла ошибка в добавление\n" #~ "управлений к расширению UVC драйвера.\n" #~ "Убедитесь, что вы запустили guvcview как root (или sudo)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Правильный видео поток не может быть установлен для guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Убедитесь что драйвер совместим с v4l2\n" #~ "и правильно установлен" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удался запуск с минимальной начальной установкой" #~ msgid "Please reconnect your camera." #~ msgstr "Пожалуйста, переподключите камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Не могу получить свойства устройства" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Убедитесь в том, что драйвер устройства поддерживает v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Ошибка метода чтения" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Попробуйте лучше mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось выделить место для буферов" #~ msgid "Please try restarting your system." #~ msgstr "Следует попробовать перезапустить систему." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось создать поток команд для видео" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Следует сообщить об этом сюда: http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Показывает информацию для отладки" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Выход после добавления расширенных элементов управления UVC (требует root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "" #~ "Не работать с потоковым видео (только элементы управления изображением)" #~ msgid "Don't display a GUI" #~ msgstr "Не отображать графический интерфейс" #~ msgid "Configuration file" #~ msgstr "Конфигурационный файл" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Аппаратное ускорение (вкл.(1) | выкл.(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Формат пикселей(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Размер кадра (по умолчанию 640х480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Интервал между снимками (сек)" #~ msgid "Number of Pictures to capture" #~ msgstr "Количество снимков" #~ msgid "Video File name (capture from start)" #~ msgstr "Имя видео-файла (запись сразу после запуска)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Продолжительность видео-записи (сек)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Завершает работу guvcview после закрытия видео" #~ msgid "Number of initial frames to skip" #~ msgstr "Количество начальных кадров для пропуска" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Отображение частоты кадров (вкл.(1) | выкл.(0))" #~ msgid "Load Profile at start" #~ msgstr "Загрузка профиля при запуске" #~ msgid "- local options" #~ msgstr "- локальные параметры" #~ msgid "Cap. Image" #~ msgstr "Сделать снимок" #~ msgid "Not enough free space left on disk" #~ msgstr "Недостаточно свободного места на диске" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - несжатый YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - несжатый BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - формат avi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - формат Matroska" #~ msgid "WEBM - format" #~ msgstr "Формат WEBM" #~ msgid " Show" #~ msgstr " Показать" #~ msgid "Quality:" #~ msgstr "Качество:" guvcview-2.0.2+debian/po/gview_v4l2core/si.po000066400000000000000000000671551256377215300210530ustar00rootroot00000000000000# Sinhalese translation for guvcview # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-03 09:59+0000\n" "Last-Translator: sajith \n" "Language-Team: Sinhalese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "පරිශ්‍රීලක පාලකයන්" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "දීප්තිය" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "දීප්ති වෙනස" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "පැහැය" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "පරිපූර්ණබව" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "තියුණු බව" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ගැමා" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "පසු ආලෝකන හානිපූරණය" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "බල සැපයුම් සංඛ්‍යාතය" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "පැහැය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "අත්පොත් ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ස්වයංක්‍රීය ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "සංවෘත ප්‍රමුඛතා ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "විවෘත ප්‍රමුඛතා ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "කළු පාට මට්ටම" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "සුදු පාට සමබරතාවය, ස්වයංක්‍රීය" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "සුදු සමබර කරන්න" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "රතු සමබරතාවය" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "නිල් සමබරතාවය" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "අනාවර්ණය" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ලබාගන්න, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ලබාගන්න" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "තිරස් හැරවුම" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "සිරස් හැරවුම" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "තිරස් මධ්‍යය" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "සිරස් මධ්‍යය" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC වර්ණතීව‍්‍රතාව" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "වර්ණ නැතිකරන්නා" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "වර්ණ සැරසිලි" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "කැමරා පාලකයන්" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ස්වයංක්‍රීය අනාවරණය" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "නිරපේක්ෂ කාලය අනාවරණ කරන්න" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "වෙනස්වන රාමු ශ්‍රීඝ‍්‍රතාව අනාවරණ කරන්න" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "තිරස් ලෙස කරකවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "සිරස් ලෙස කරකවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "තිරස් ලෙස කරකැවීම නැවත අරඹන්න" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "සිරස් ලෙස කරකැවීම නැවත අරඹන්න" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "තිරස් ලෙස කරකවන්න, නිරපේක්ෂ" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "නිරපේක්ෂව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "සාපේක්ෂව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, නිරපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, අඛණ්ඩව" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "පුද්ගලිකත්වය" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "ස්වයංක්‍රීයව අනාවරණය කරන්න" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ස්වයංක්‍රීය ප්‍රමුඛතාව අනාවරණය කරන්න" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "අනාවරණය කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "සුදු පැහැය සැසඳීමේ උෂ්ණත්වය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "සුදු පැහැය සැසඳීමේ උෂ්ණත්වය" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "සුදු පැහැය සැසඳීමේ උපාංගය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "සුදු පැහැය සැසඳීමේ නිල් පැහැයේ උපාංගය" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "සුදු පැහැය සැසඳීමේ රතු පැහැයේ උපාංගය" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "නාභාගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "නාභාගත කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "අක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "සක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "ක්ෂණික ආලෝකය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "ස්වයංක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "තිරස් ලෙස කරකවන්න (සාපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "සිරස් ලෙස කරකවන්න (සාපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "තිරස් ලෙස කරකැවීම නැවත සකසන්න" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "සිරස් ලෙස කරකැවීම නැවත සකසන්න" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "නාභිගත කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 ක්‍රමය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 සංඛ්‍යාතය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "වීඩියෝව සැකසීමට නොහැක" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "පික්සල් එකක් සඳහා දළ බිට් ප්‍රමාණය" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "MJPG - සම්පීඩනය නොකරන ලද" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "කැමරා නිමැවුම:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - සම්පීඩන කරන ලද" #~ msgid "MPEG video 1" #~ msgstr "MPEG වීඩියෝ 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - ෆ්ලෑෂ් වීඩියෝ 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. වීඩියෝ 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 ආකෘතිය" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "ශ්‍රව්‍ය API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "යෙදවුම් උපකරණය:" #~ msgid "Sample Rate:" #~ msgstr "ආදර්ශ අනුපාතය:" #~ msgid "Dev. Default" #~ msgstr "Dev. Default" #~ msgid "Channels:" #~ msgstr "නාලිකාවන්:" #~ msgid "1 - mono" #~ msgstr "1 - එකක්" #~ msgid "2 - stereo" #~ msgstr "2 - ත්‍රිමාන" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- වීඩියෝ පෙරනයන්----" #~ msgid " Echo" #~ msgstr " අනුකරණය කරන්න" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " Fuzz" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #~ msgid "Stop Video (V)" #~ msgstr "වීඩියෝව නවත්වන්න (V)" #~ msgid "Cap. Video (V)" #~ msgstr "වීඩියෝව ග්‍රහණය කරගන්න (V)" #~ msgid "Error" #~ msgstr "දෝෂය" #, fuzzy #~ msgid "_Cancel" #~ msgstr "අවලංගු කරන්න" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "ඔබ වීඩියෝ උපකරණ එකකට වඩා වැඩියෙන් සවිකර ඇත.\n" #~ "ඔබට වෙනත් එකක් අත්හදා බැලීමට අවශ්‍යද?\n" #~ msgid "Device:" #~ msgstr "උපකරණය:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview වීඩියෝ ග්‍රහණය කරගැනීම" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "ස්වයංක්‍රීයව නවත්වන්න (I)" #~ msgid "Cap. Image (I)" #~ msgstr "රූපය ග්‍රහණය කරගන්න (I)" #~ msgid "Image Controls" #~ msgstr "රූප පාලක" #, fuzzy #~ msgid "Video Controls" #~ msgstr "පරිශ්‍රීලක පාලකයන්" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "පරිශ්‍රීලක පාලකයන්" #~ msgid "Save Profile" #~ msgstr "ආකෘතිය සුරකින්න" #~ msgid "Load Profile" #~ msgstr "ආකෘතිය ප්‍රවේශනය කරන්න" #~ msgid "File Format:" #~ msgstr "ගොනු ආකෘතිය:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "රූපයේ ගොනු නාමය" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "දළ රූපය (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "රූපයේ ගොනු නාමය" #~ msgid "start new" #~ msgstr "අලුතින් අරඹන්න" #~ msgid "restart" #~ msgstr "නැවත අරඹන්න" #~ msgid "new" #~ msgstr "අලුත් එකක්" #~ msgid "cancel" #~ msgstr "අවලංගු කරන්න" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "අලුත් ක්‍රියාවලියක් දියත් කරන්න හෝ නැවත අරඹන්නද?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "ශ්‍රව්‍ය කොඩෙක් අගයන්" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " fps සංකේතකය: \n" #~ " (0 - fps ලැයිස්තුවක් සහිත රාමුවේ අගය පාවිච්චි කරන්න)" #~ msgid " monotonic pts" #~ msgstr " ඒකවිධ pts" #~ msgid "bit rate: " #~ msgstr "බිට් අනුපාතය: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "උපරිම qdiff: " #~ msgid "dia size: " #~ msgstr "dia size: " #~ msgid "pre dia size: " #~ msgstr "pre dia size: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "අවසාන අනාවැකි ගණන: " #~ msgid "gop size: " #~ msgstr "gop size: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me method: " #~ msgid "mb decision: " #~ msgstr "mb decision: " #~ msgid "max B frames: " #~ msgstr "උපරිම B රාමු: " #~ msgid "num threads: " #~ msgstr "num සම්බන්ධයන්: " #~ msgid "audio codec values" #~ msgstr "ශ්‍රව්‍ය කොඩෙක් අගයන්" #~ msgid "sample format: " #~ msgstr "ආදර්ශ ආකෘතිය: " #~ msgid "Settings" #~ msgstr "සැකසුම්" #~ msgid "Hardware Defaults" #~ msgstr "ස්වභාවික දෘඩාංග" #~ msgid "Camera Button" #~ msgstr "කැමරා බොත්තම" #~ msgid "Capture Image" #~ msgstr "රූපය ග්‍රහණය කරගන්න" #~ msgid "Capture Video" #~ msgstr "වීඩියෝව ග්‍රහණය කරගන්න" #~ msgid "Photo" #~ msgstr "ඡායාරූපය" #~ msgid "File" #~ msgstr "ගොනුව" #~ msgid "Increment Filename" #~ msgstr "වර්ධක ගොනු නාමය" #~ msgid "Video" #~ msgstr "වීඩියෝ" #~ msgid "Video Codec" #~ msgstr "වීඩියෝ කොඩෙක්" #~ msgid "Video Codec Properties" #~ msgstr "වීඩියෝ කොඩෙක් ගුණාංග" #~ msgid "Audio Codec" #~ msgstr "ශ්‍රව්‍ය කොඩෙක්" #~ msgid "Audio Codec Properties" #~ msgstr "ශ්‍රව්‍ය කොඩෙක් ගුණාංග" #~ msgid "Left" #~ msgstr "වම" #~ msgid "Right" #~ msgstr "දකුණ" #~ msgid "Down" #~ msgstr "පහලට" #~ msgid "Up" #~ msgstr "ඉහළට" #~ msgid "8 bit" #~ msgstr "බිට් 8" #~ msgid "12 bit" #~ msgstr "බිට් 12" #~ msgid "Auto Focus (continuous)" #~ msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න (අඛණ්ඩව)" #~ msgid "set Focus" #~ msgstr "නාභිගත වීම සකස් කරන්න" #, fuzzy #~ msgid "_Apply" #~ msgstr "යොදන්න" #~ msgid "Frame Rate:" #~ msgstr "රාමු ශීඝ්‍රතාවය:" #~ msgid "Resolution:" #~ msgstr "තීරණය:" #~ msgid "Camera Output:" #~ msgstr "කැමරා නිමැවුම:" #~ msgid "---- Video Filters ----" #~ msgstr "---- වීඩියෝ පෙරනයන්----" #~ msgid " Mirror" #~ msgstr " කැඩපත" #~ msgid " Invert" #~ msgstr " යටිකුරු කරන්න" #~ msgid " Negative" #~ msgstr " ප්‍රතික්ෂේප කරන්න" #~ msgid " Mono" #~ msgstr " එකක්" #~ msgid " Pieces" #~ msgstr " කොටස්" #~ msgid " Particles" #~ msgstr " ඉතා කුඩා කොටස්" #, fuzzy #~ msgid "Print version" #~ msgstr "පිටපත මුද්‍රණය කරන්න" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "පාවිච්චිය සඳහා වීඩියෝ උපකරණය [ස්වභාවික: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "ග්‍රහණය කරගැනීමේ ක්‍රමය (1-mmap (ස්වභාවික) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "ආකෘතිය ප්‍රවේශනය කරන්න" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview අනතුරු ඇඟවීම:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "වීඩියෝව ග්‍රහණය කිරීම" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC වීඩියෝ දකින්නා" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "ලිනක්ස් uvc ඩ්‍රයිවරය සඳහා වීඩියෝ පෙන්වන්නා සහ ග්‍රහණය කරන්නා" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "ශ්‍රව්‍ය" #~ msgid " Sound" #~ msgstr " නාදය" #~ msgid " Show VU meter" #~ msgstr " VU මීටරය පෙන්වන්න" #~ msgid "---- Audio Effects ----" #~ msgstr "---- ශ්‍රවණ සැරසිලි ----" #~ msgid "Save File" #~ msgstr "ගොනුව සුරකින්න" #~ msgid "codec values" #~ msgstr "කොඩෙක් අගයන්" #~ msgid "capturing photo to" #~ msgstr "ඡායාරූපය ග්‍රහණය කිරීම" #~ msgid "Cap. Video" #~ msgstr "වීඩියෝව ග්‍රහණය කරගන්න (V)" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer පාලකයන්" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "උපකරණය විවෘත කිරීමට නොහැක" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "කරැණාකර කැමරාව සම්බන්ධ කර ඇති බව සහ \n" #~ "නිවැරදි ඩ්‍රයිවරය පිහිටුවා ඇති බවට සහතික කරගන්න." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC ව්‍යාප්ති පාලක" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "UVC ඩ්‍රයිවරයට ව්‍යාප්ති පාලක එක් කර ඇත" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "UVC ව්‍යාප්ති පාලක" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "UVC ඩ්‍රයිවරයට පාලක ව්‍යාප්තිය එකතු කරන\n" #~ "අතරතුර දෝෂයක් හට ගැනිණ\n" #~ "ඔබ guvcview root ලෙස (හෝ sudo) වැඩකරන බව සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "guvcview සඳහා වලංගු වීඩියෝවක් පිහිටුවීමට නොහැක" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "ඔබගේ උපකරණ ඩ්‍රයිවරය v4l2ට අනුකූල වන බව \n" #~ "සහ එය සුදුසු ලෙස පිහිටුවා ඇති බවට සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "අවම සැලැස්ම සමඟ ඇරඹීමට නොහැක" #~ msgid "Please reconnect your camera." #~ msgstr "කරුණාකර ඔබේ කැමරාව නැවත සම්බන්ධ කරන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "උපකරණයන්ගේ හැකියාවන් විමසුමට නොහැකි විය" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "උපකරණ ඩ්‍රයිවරය v4l2ට අනුග්‍රහය ලබා දෙන බව සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "කියවීම් ක්‍රමයේ දෝෂයකි" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "කරුණාකර mmap වෙනුවට අත්හදා බලන්න (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "බෆර්ස් වෙන්කිරීමට නොහැක" #~ msgid "Please try restarting your system." #~ msgstr "කරුණාකර ඔබේ පද්ධතිය නැවත ඇරඹීමට උත්සාහ දරන්න" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "වීඩියෝ පටයක් නිර්මාණය කිරීමට නොහැක" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "කරුණාකර එය මෙතනට වාර්තා කරන්න http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "අතේ ගෙන යාහැකි ජාලික චිත්‍ර (Png)" #~ msgid "Displays debug information" #~ msgstr "දෝෂ මඟහැරීමේ තොරතුරු පෙන්වන්න" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "UVC ව්‍යාප්ති පාලක එකතු කිරීමෙන් පසුව පිටවෙන්න (root/sudo අවශ්‍යයි)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "ගලායන වීඩියෝවක් අවශ්‍ය නැත (රූපය පාලක පමණි)" #~ msgid "Don't display a GUI" #~ msgstr "GUI එකක් ප්‍රදර්ශනය කරන්න එපා" #~ msgid "Configuration file" #~ msgstr "ආකෘති ගොනුව" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "දෘඩාංග අධිවේගීකරණය (හැකියාව(1) | නොහැකියාව(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel ආකෘතිය(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "රාමුවක ප්‍රමාණය, ස්වභාවික: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "රූපය ග්‍රහණය කරගැනීම අතර කාලය තත්පර වලින්" #~ msgid "Number of Pictures to capture" #~ msgstr "ග්‍රහණය කරගැනීමට ඇති පින්තූර ගණන" #~ msgid "Video File name (capture from start)" #~ msgstr "වීඩියෝවේ ගොනු නාමය (ග්‍රහණය කරගැනීම ආරම්භයේ සිට)" #~ msgid "Video capture time (in seconds)" #~ msgstr "වීඩියෝවේ ග්‍රහණය කරගැනීමේ කාලය තත්පර වලින්" #~ msgid "Exits guvcview after closing video" #~ msgstr "වීඩියෝව වැසීමෙන් පසුව guvcview එකෙන් පිටවෙන්න" #~ msgid "Number of initial frames to skip" #~ msgstr "නොසලකා හැරීමට ඇති ආරම්භක රාමු ගණන" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS අගය පෙන්වන්න (හැකියාව(1) | නොහැකියාව(0))" #~ msgid "Load Profile at start" #~ msgstr "ආරම්භයේදී ආකෘතිය ප්‍රවේශනය කරන්න" #~ msgid "- local options" #~ msgstr "- ස්ථානීය විකල්ප" #~ msgid "Cap. Image" #~ msgstr "රූපය ග්‍රහණය කරගන්න" #~ msgid "Not enough free space left on disk" #~ msgstr "සෑ‍හෙන තරම් හිස් අවකාශයක් තැටිය මත ඉතිරි වී නොමැත" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - avi ආකෘතිය" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska ආකෘතිය" #~ msgid "WEBM - format" #~ msgstr "WEBM - ආකෘතිය" #~ msgid " Show" #~ msgstr " පෙන්වන්න" #~ msgid "Quality:" #~ msgstr "ගුණාත්මකබව:" guvcview-2.0.2+debian/po/gview_v4l2core/sr.po000066400000000000000000000575261256377215300210650ustar00rootroot00000000000000# Serbian translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # Мирослав Николић , 2011—2013. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-09 13:12+0000\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Контроле корисника" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Осветљеност" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контраст" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Нијанса" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Засићеност" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Оштрина" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гама" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Поправка светла позадине" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Учесталост освежавања" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Нијанса, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Фокус, ауто" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручно" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Аутоматски" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Приоритет затварача" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Приоритет бленде" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Ниво црне" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Равнотежа белог, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Уравнотежавање белог" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Равнотежа црвеног" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Равнотежа плавог" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Излагање" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Појачање, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Појачање" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Водоравно превртање" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Усправно превртање" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Водоравно центрирање" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Усправно центрирање" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "АГЦ хроминансе" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Укидач боје" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Ефекти боје" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Контроле камере" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Аутоматска експозиција" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Време излагања, апсолутно" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Излагање, динамички проток кадра" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Праћење, релативно" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Нагибање, релативно" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Праћење, поновно" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Нагибање, поновно" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Праћење, апсолутно" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Фокус, апсолутни" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Фокус, релативни" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Фокус, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Зум, апсолутни" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Зум, релативни" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Зум, непрекидни" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Приватност" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Излагање, аутоматско" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Излагање, приоритет аутоматског" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Излагање (апсолутно)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Температура равнотеже белог, ауто" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура равнотеже белог" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Састојак равнотеже белог, ауто" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Плави састојак равнотеже белог" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Црвени састојак равнотеже белог" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокус" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Фокус (апсолутни)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Искљ." #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Укљ." #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Треперење" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Самостално" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Праћење (релативно)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Нагибање (релативно)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Поновно праћење" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Поновно нагибање" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Фокус (апсолутни)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "ЛЕД1 режим" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "ЛЕД1 учесталост" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Онемогући обрађивање видеа" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Сирових бита по тачци" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "ПЦМ — несажето (16 бита)" #~ msgid "Vorbis" #~ msgstr "Ворбис" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Излаз камере:" #~ msgid "MJPG - compressed" #~ msgstr "МЈПГ — сажети" #~ msgid "MPEG video 1" #~ msgstr "МПЕГ видео 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "ФЛВ1 — флеш видео 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "ВМВ1 — виндоуз медија видео 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "МПГ2 — МПГ2 формат" #~ msgid "MS MP4 V3" #~ msgstr "МС МП4 В3" #~ msgid "MPEG4-ASP" #~ msgstr "МПЕГ4-АСП" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "МПЕГ4-АВЦ (Х264)" #~ msgid "VP8 (VP8)" #~ msgstr "ВП8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Теора (ogg theora)" #~ msgid "Audio API:" #~ msgstr "Аудио АПИ:" #~ msgid "PORTAUDIO" #~ msgstr "ПОРТАУДИО" #~ msgid "PULSEAUDIO" #~ msgstr "ПУЛСЕАУДИО" #~ msgid "Input Device:" #~ msgstr "Улазни уређај:" #~ msgid "Sample Rate:" #~ msgstr "Проток узорка:" #~ msgid "Dev. Default" #~ msgstr "Основни са уређаја" #~ msgid "Channels:" #~ msgstr "Број канала:" #~ msgid "1 - mono" #~ msgstr "1 — моно" #~ msgid "2 - stereo" #~ msgstr "2 — стерео" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "———— Видео филтери ————" #~ msgid " Echo" #~ msgstr " Ехо" #~ msgid " Reverb" #~ msgstr " Одјек" #~ msgid " Fuzz" #~ msgstr " Маљ" #~ msgid " WahWah" #~ msgstr " ВауВау" #~ msgid " Ducky" #~ msgstr " Паче" #~ msgid "Stop Video (V)" #~ msgstr "Заустави видео (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Сними видео (V)" #~ msgid "Error" #~ msgstr "Грешка" #, fuzzy #~ msgid "_Cancel" #~ msgstr "откажи" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Имате неколико видео уређаја инсталирана.\n" #~ "Желите ли да пробате неки други ?\n" #~ msgid "Device:" #~ msgstr "Уређај:" #~ msgid "Guvcview Video Capture" #~ msgstr "Камерица — видео снимање" #, fuzzy #~ msgid "Guvcview" #~ msgstr "Камерица" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Заустави аутоматик (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Сними слику (I)" #~ msgid "Image Controls" #~ msgstr "Контроле слике" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Контроле корисника" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Контроле корисника" #~ msgid "Save Profile" #~ msgstr "Сачувај профил" #~ msgid "Load Profile" #~ msgstr "Учитај профил" #~ msgid "File Format:" #~ msgstr "Запис датотеке:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Назив датотеке слике" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Сирова слика (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Јпег (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Назив датотеке слике" #~ msgid "start new" #~ msgstr "покрени нови" #~ msgid "restart" #~ msgstr "поново покрени" #~ msgid "new" #~ msgstr "нови" #~ msgid "cancel" #~ msgstr "откажи" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "да покренем нови процес или да се поново покренем?.\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "вредност кодека звука" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " ф/с енкодера: \n" #~ " (0 — користите вредност ф/с поља за бирање)" #~ msgid " monotonic pts" #~ msgstr " једнообразне тачке" #~ msgid "bit rate: " #~ msgstr "проток бита: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. q разл: " #~ msgid "dia size: " #~ msgstr "диа величина: " #~ msgid "pre dia size: " #~ msgstr "пре диа величина: " #~ msgid "pre me: " #~ msgstr "пре ме: " #~ msgid "pre cmp: " #~ msgstr "пре цмп: " #~ msgid "cmp: " #~ msgstr "цмп: " #~ msgid "sub cmp: " #~ msgstr "под цмп: " #~ msgid "last predictor count: " #~ msgstr "последњи број предсказивача: " #~ msgid "gop size: " #~ msgstr "гоп величина: " #~ msgid "qcompress: " #~ msgstr "q-сажимање: " #~ msgid "qblur: " #~ msgstr "q-замућење: " #~ msgid "subq: " #~ msgstr "под-q: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "ме начин: " #~ msgid "mb decision: " #~ msgstr "мб одлука: " #~ msgid "max B frames: " #~ msgstr "највише Б оквира: " #~ msgid "num threads: " #~ msgstr "бр. нити: " #~ msgid "audio codec values" #~ msgstr "вредност кодека звука" #~ msgid "sample format: " #~ msgstr "запис узорка: " #~ msgid "Settings" #~ msgstr "Подешавања" #~ msgid "Hardware Defaults" #~ msgstr "Основно са уређаја" #~ msgid "Camera Button" #~ msgstr "Дугме фото-апарата" #~ msgid "Capture Image" #~ msgstr "Сними слику" #~ msgid "Capture Video" #~ msgstr "Сними видео" #~ msgid "Photo" #~ msgstr "Фотографија" #~ msgid "File" #~ msgstr "Датотека" #~ msgid "Increment Filename" #~ msgstr "Назив датотеке увећања" #~ msgid "Video" #~ msgstr "Видео" #~ msgid "Video Codec" #~ msgstr "Видео кодек" #~ msgid "Video Codec Properties" #~ msgstr "Својства видео кодека" #~ msgid "Audio Codec" #~ msgstr "Аудио кодек" #~ msgid "Audio Codec Properties" #~ msgstr "Својства аудио кодека" #~ msgid "Left" #~ msgstr "Лево" #~ msgid "Right" #~ msgstr "Десно" #~ msgid "Down" #~ msgstr "Доле" #~ msgid "Up" #~ msgstr "Горе" #~ msgid "8 bit" #~ msgstr "8 бита" #~ msgid "12 bit" #~ msgstr "12 бита" #~ msgid "Auto Focus (continuous)" #~ msgstr "Самостално фокусирање (непрекидно)" #~ msgid "set Focus" #~ msgstr "подеси фокус" #, fuzzy #~ msgid "_Apply" #~ msgstr "Примени" #~ msgid "Frame Rate:" #~ msgstr "Проток кадра:" #~ msgid "Resolution:" #~ msgstr "Резолуција:" #~ msgid "Camera Output:" #~ msgstr "Излаз камере:" #~ msgid "---- Video Filters ----" #~ msgstr "———— Видео филтери ————" #~ msgid " Mirror" #~ msgstr " Огледало" #~ msgid " Invert" #~ msgstr " Обрнуто" #~ msgid " Negative" #~ msgstr " Негатив" #~ msgid " Mono" #~ msgstr " Моно" #~ msgid " Pieces" #~ msgstr " Комадићи" #~ msgid " Particles" #~ msgstr " Честице" #, fuzzy #~ msgid "Print version" #~ msgstr "Штампа издање" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Видео уређај за коришћење [основни: „/dev/video0“]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Начин снимања (1-ммап (основно) 2-читај)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Учитај профил" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Упозорење Камерице:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "снимам видео у" #~ msgid "guvcview" #~ msgstr "Камерица" #~ msgid "GTK UVC video viewer" #~ msgstr "ГТК УВЦ видео приказивач" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Приказивач и снимач видеа за линуксов увц управљачки програм" #~ msgid "MPEG2 - (lavc)" #~ msgstr "МПЕГ2 — (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "МП3 — (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Долби АЦ3 — (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "Ниски АЦЦ — (faac)" #~ msgid "Audio" #~ msgstr "Аудио" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid " Show VU meter" #~ msgstr " Прикажи ВУ метар" #~ msgid "---- Audio Effects ----" #~ msgstr "———— Аудио ефекти ————" #~ msgid "Save File" #~ msgstr "Сачувајте датотеку" #~ msgid "codec values" #~ msgstr "вредности кодека" #~ msgid "capturing photo to" #~ msgstr "снимам фотографију у" #~ msgid "Cap. Video" #~ msgstr "Сними видео" #~ msgid "GUVCViewer Controls" #~ msgstr "Контроле Камерице" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да отворим уређај" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Проверите да ли је камера повезана и да ли\n" #~ "је инсталиран исправан управљачки програм." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Камерица:\n" #~ "\n" #~ "Контроле УВЦ проширења" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Контроле проширења су додате УВЦ управљачком програму" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Контроле УВЦ проширења" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Дошло је до грешке приликом додавања контрола\n" #~ "проширења УВЦ управљачком програму. Уверите се да\n" #~ "сте покренули камерче као администратор (или судо)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да подесим исправан видео ток за камерче" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Уверите се да је управљачки програм вашег уређаја\n" #~ "усаглашен са в4л2 и да је исправно инсталиран." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да започнем са минималним подешавањима" #~ msgid "Please reconnect your camera." #~ msgstr "Молим поново повежите вашу камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да испитам могућности уређаја" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Уверите се да управљачки програм уређаја подржава в4л2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Грешка режима читања" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Молим покушајте „mmap“ уместо овог (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да доделим Бафере" #~ msgid "Please try restarting your system." #~ msgstr "Молим покушајте поново да покренете систем." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да направим видео нит" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Молим пријавите на адресу: http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Битмап (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Преносна мрежна графика (Png)" #~ msgid "Displays debug information" #~ msgstr "Приказује информацијe о исправљању грешака" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Излази после додавања контрола УВЦ проширења (захтева „root/sudo“)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Не пушта ток видеа (само контроле слике)" #~ msgid "Don't display a GUI" #~ msgstr "Не приказује ГКС" #~ msgid "Configuration file" #~ msgstr "Датотека подешавања" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Убрзање физичке компоненте (укључи(1) | искључи(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Формат тачака(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Величина кадра, основна: 640к480" #~ msgid "Image capture interval in seconds" #~ msgstr "Интервал снимања слике у секундама" #~ msgid "Number of Pictures to capture" #~ msgstr "Број слика за снимање" #~ msgid "Video File name (capture from start)" #~ msgstr "Назив датотеке видеа (снимање од почетка)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Време снимања видеа (у секундама)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Излази из камерице након затварања видеа" #~ msgid "Number of initial frames to skip" #~ msgstr "Број почетних кадрова за прескакање" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Приказује К/С вредност (укључи (1) | искључи (0))" #~ msgid "Load Profile at start" #~ msgstr "Учитава профил приликом покретања" #~ msgid "- local options" #~ msgstr "— локална опција" #~ msgid "Cap. Image" #~ msgstr "Сними слику" #~ msgid "Not enough free space left on disk" #~ msgstr "Нема довољно слободног простора на диску" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "ЈУЈ2 — несажети ЈУВ" #~ msgid "RGB - uncomp BMP" #~ msgstr "РГБ — несажети БМП" #~ msgid "AVI - avi format" #~ msgstr "АВИ — ави формат" #~ msgid "MKV - Matroska format" #~ msgstr "МКВ — Матрошка формат" #~ msgid "WEBM - format" #~ msgstr "ВЕБМ — запис" #~ msgid " Show" #~ msgstr " Прикажи" #~ msgid "Quality:" #~ msgstr "Квалитет:" guvcview-2.0.2+debian/po/gview_v4l2core/tr.po000066400000000000000000000502001256377215300210440ustar00rootroot00000000000000# Turkish translation for guvcview # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-11-06 12:49+0000\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kullanıcı Denetimleri" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Parlaklık" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Karşıtlık" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Renk" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Doygunluk" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Keskinlik" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Kontras derecesi (gama)" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Arka Işık Desteği" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Güç Hattı Frekansı" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Renk, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Odak, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "El Kipi" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Otomatik Kip" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Kapak Öncelik Kipi" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Açıklık Öncelik Kipi" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Siyah Seviyesi" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Beyaz Dengesi, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Beyaz Dengesi Yap" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Kırmızı Dengesi" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Mavi Dengesi" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Pozlandırma" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Kazanç, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Kazanç" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Yatay Çevir" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Dikey Çevir" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Yatay Merkez" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Dikey Merkez" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Kroma Otomatik Kazanç Kontrolü (AGC)" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Renk Öldürücü" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Renk Efektleri" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamera Denetimleri" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Otomatik Pozlandırma" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Pozlandırma Süresü, Kesin" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Pozlandırma, Dinamik Kare Oranı" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Kaydırma, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Eğme, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Kaydırma, Sıfırla" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Eğme, Sıfırla" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Kaydırma, Kesin" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Odaklama, Kesin" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Odaklama, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Odaklama, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Yakınlaştırma, Kesin" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Yakınlaştırma, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Yakınlaştırma, Sürekli" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Gizlilik" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Pozlama, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Pozlama, Otomatik Öncelik" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Pozlama (Kesin)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Beyaz Denge Sıcaklığı, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Beyaz Dengesi Sıcaklığı" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Beyaz Denge Bileşeni, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Beyaz Denge Mavi Bileşeni" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Beyaz Denge Kırmızı Bileşeni" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Odaklama" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Odaklama (Kesin)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "Kapalı" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "Açık" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "Yanıp Sönme" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 msgid "Auto" msgstr "Otomatik" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Kaydır (bağıl)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Eğ (bağıl)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Kaydırmayı Sıfırla" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Eğme Sıfırla" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Odaklan (kesin)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 Kipi" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 Frekansı" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Video işlemeyi devre dışı bırak" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Piksel başına ham bit" #, fuzzy #~ msgid "PCM - uncompressed (float 32 bit)" #~ msgstr "PCM - sıkıştırılmamış (16 bit)" #~ msgid "Vorbis" #~ msgstr "Vorbis" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Kamera Çıktısı:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - sıkıştırılmış" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 biçimi" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "VP8 (VP8)" #~ msgstr "VP8 (VP8)" #~ msgid "Theora (ogg theora)" #~ msgstr "Theora (ogg theora)" #~ msgid "Audio API:" #~ msgstr "SES API'yı:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Girdi Aygıtı:" #~ msgid "Sample Rate:" #~ msgstr "Örnekleme Oranı:" #~ msgid "Dev. Default" #~ msgstr "Aygıt Vars." #~ msgid "Channels:" #~ msgstr "Kanallar:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Video Filtreleri----" #~ msgid " Echo" #~ msgstr " Göster" #~ msgid " Reverb" #~ msgstr " Yankı" #~ msgid " Fuzz" #~ msgstr " Bulanma" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ördek" #~ msgid "Stop Video (V)" #~ msgstr "Videoyu Durdur (V)" #~ msgid "Cap. Video (V)" #~ msgstr "Video Yakala (V)" #~ msgid "Error" #~ msgstr "Hata" #, fuzzy #~ msgid "_Cancel" #~ msgstr "iptal" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Kurulu birden fazla video aygıtınız var.\n" #~ "Bir diğerini denemek ister misiniz?\n" #~ msgid "Device:" #~ msgstr "Aygıt:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview Video Yakala" #, fuzzy #~ msgid "Guvcview" #~ msgstr "guvcview" #, fuzzy #~ msgid "Stop Cap. (I)" #~ msgstr "Otomatik Durdur (I)" #~ msgid "Cap. Image (I)" #~ msgstr "Görüntü Yakala (I)" #~ msgid "Image Controls" #~ msgstr "Resim Denetimleri" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Kullanıcı Denetimleri" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Kullanıcı Denetimleri" #~ msgid "Save Profile" #~ msgstr "Profili Kaydet" #~ msgid "Load Profile" #~ msgstr "Profili Yükle" #~ msgid "File Format:" #~ msgstr "Dosya Biçimi:" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Resim Dosya adı" #, fuzzy #~ msgid "Raw (*.raw)" #~ msgstr "Ham Görüntü (raw)" #, fuzzy #~ msgid "Jpeg (*.jpg)" #~ msgstr "Jpeg (jpg)" #, fuzzy #~ msgid "Video file name" #~ msgstr "Resim Dosya adı" #~ msgid "start new" #~ msgstr "yeni başlat" #~ msgid "restart" #~ msgstr "yeniden başlat" #~ msgid "new" #~ msgstr "yeni" #~ msgid "cancel" #~ msgstr "iptal" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "yeni süreç başlat veya yeniden başlat?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "ses çözücü değerleri" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " kodlayıcı fps: \n" #~ " (0 - fps kutu değerini kullan)" #~ msgid " monotonic pts" #~ msgstr " tek düze puan" #~ msgid "bit rate: " #~ msgstr "bıt oranı: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "azami qdiff: " #~ msgid "dia size: " #~ msgstr "dia boyutu: " #~ msgid "pre dia size: " #~ msgstr "ön dia boyutu: " #~ msgid "pre me: " #~ msgstr "ön me: " #~ msgid "pre cmp: " #~ msgstr "ön cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "alt cmp: " #~ msgid "last predictor count: " #~ msgstr "son öngörücü sayısı: " #~ msgid "gop size: " #~ msgstr "gop boyutu: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me yöntemi: " #~ msgid "mb decision: " #~ msgstr "mb kararı: " #~ msgid "max B frames: " #~ msgstr "en yüks. B karesi: " #~ msgid "num threads: " #~ msgstr "işlem sayısı: " #~ msgid "audio codec values" #~ msgstr "ses çözücü değerleri" #~ msgid "sample format: " #~ msgstr "örnek biçimi: " #~ msgid "Settings" #~ msgstr "Ayarlar" #~ msgid "Hardware Defaults" #~ msgstr "Donanım Varsayılanları" #~ msgid "Camera Button" #~ msgstr "Kamera Düğmesi" #~ msgid "Capture Image" #~ msgstr "Resim Yakala" #~ msgid "Capture Video" #~ msgstr "Video Yakala" #~ msgid "Photo" #~ msgstr "Fotoğraf" #~ msgid "File" #~ msgstr "Dosya" #~ msgid "Increment Filename" #~ msgstr "Dosya Adını Arttır" #~ msgid "Video" #~ msgstr "Görüntü" #~ msgid "Video Codec" #~ msgstr "Video Kodlayıcısı" #~ msgid "Video Codec Properties" #~ msgstr "Video Kodlayıcı Özellikleri" #~ msgid "Audio Codec" #~ msgstr "Ses Kodlayıcı" #~ msgid "Audio Codec Properties" #~ msgstr "Ses Kodlayıcı Özellikleri" #~ msgid "Left" #~ msgstr "Sol" #~ msgid "Right" #~ msgstr "Sağ" #~ msgid "Down" #~ msgstr "Aşağı" #~ msgid "Up" #~ msgstr "Yukarı" #~ msgid "8 bit" #~ msgstr "8 bit" #~ msgid "12 bit" #~ msgstr "12 bit" #~ msgid "Auto Focus (continuous)" #~ msgstr "Otomatik Odakla (sürekli)" #~ msgid "set Focus" #~ msgstr "Odak ayarla" #, fuzzy #~ msgid "_Apply" #~ msgstr "Uygula" #~ msgid "Frame Rate:" #~ msgstr "Kare Oranı:" #~ msgid "Resolution:" #~ msgstr "Çözünürlük:" #~ msgid "Camera Output:" #~ msgstr "Kamera Çıktısı:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Video Filtreleri----" #~ msgid " Mirror" #~ msgstr " Ayna" #~ msgid " Invert" #~ msgstr " Tersine Çevir" #~ msgid " Negative" #~ msgstr " Negatif" #~ msgid " Mono" #~ msgstr " Mono" #~ msgid " Pieces" #~ msgstr " Parçalar" #~ msgid " Particles" #~ msgstr " Tanecikler" #, fuzzy #~ msgid "Print version" #~ msgstr "Sürümü yazdırır" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Kullanılacak Video Aygıtı [varsayılan: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Yakalama yöntemi (1-mmap (varsayılan) 2-read)" #, fuzzy #~ msgid "load control profile" #~ msgstr "Profili Yükle" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview Uyarısı:" #, fuzzy #~ msgid "saving video to %s" #~ msgstr "video yakalanıyor" #~ msgid "guvcview" #~ msgstr "guvcview" #~ msgid "GTK UVC video viewer" #~ msgstr "GTK UVC video görüntüleyici" #~ msgid "A video viewer and capturer for the linux uvc driver" #~ msgstr "Linux uvc sürücüsü için video görüntüleyici ve yakalayıcı" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Ses" #~ msgid " Sound" #~ msgstr " Ses" #~ msgid " Show VU meter" #~ msgstr " VU Metreyi Göster" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Ses Efektleri ----" #~ msgid "Save File" #~ msgstr "Dosyayı Kaydet" #~ msgid "codec values" #~ msgstr "çözücü değerleri" #~ msgid "capturing photo to" #~ msgstr "fotoğraf yakalanıyor" #~ msgid "Cap. Video" #~ msgstr "Video Yakala" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Denetimleri" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Aygıt açılamıyor" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Kameranızın bağlı ve doğru sürücülerinin\n" #~ "yüklendiğinden emin olun." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Uzantı denetimleri" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Uzantı denetimleri UVC sürücüsüne eklendi" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "UVC Uzantı denetimleri" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "UVC sürücüsüne uzantı denetimleri eklenirken\n" #~ "bir hata oluştu\n" #~ "guvcview'i yönetici (veya sudo) ile çalıştırdığınızdan\n" #~ "emin olun" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "guvcview için geçerli video akışı ayarlanamıyor" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Aygıt sürücünüzün v4l2 uyumlu olduğundan ve\n" #~ "doğru bir şekilde yüklendiğinden emin olun." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Asgari ayarlama başlatılamadı" #~ msgid "Please reconnect your camera." #~ msgstr "Lütfen kameranı tekrar bağla." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Aygıt özellikleri sorgulanamadı" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Aygıt sürücünüzün v4l2 desteklediğinden emin olun." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Okuma yöntemi hatası" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "mmap deneyin (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Tamponlar ayrılamıyor" #~ msgid "Please try restarting your system." #~ msgstr "Lütfen sistemi tekrar başlatmayı dene." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Video İş Parçacığı oluşturulamıyor" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Lütfen http://developer.berlios.de/bugs/?group_id=8179 adresine bildirin" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Taşınabilir Ağ Grafikleri (Png)" #~ msgid "Displays debug information" #~ msgstr "Hata ayıklama bilgisini görüntüler" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "UVC uzantı denetimlerini ekledikten sonra çık (yönetici/sudo gerektirir)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Video'yu akış yapma (sadece resim denetimleri)" #~ msgid "Don't display a GUI" #~ msgstr "Grafiksel Arayüz görüntüleme" #~ msgid "Configuration file" #~ msgstr "Yapılandırma dosyası" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Donanım hızlandırma (enable(1) | disable(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Piksel biçimi(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Çerçeve boyutu, varsayılan: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Resim yakalama aralığı (saniye)" #~ msgid "Number of Pictures to capture" #~ msgstr "Yakalanacak Resim Sayısı" #~ msgid "Video File name (capture from start)" #~ msgstr "Video Dosya adı (başlangıçtan yakala)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video yakalama süresi (saniye)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Video kapatıldıktan sonra guvcview'den çıkar" #~ msgid "Number of initial frames to skip" #~ msgstr "Başlangıçta atlanacak kare sayısı" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS değerini göster (enable(1) | disable (0))" #~ msgid "Load Profile at start" #~ msgstr "Başlangıçta Profil Yükle" #~ msgid "- local options" #~ msgstr "- yerel seçenekler" #~ msgid "Cap. Image" #~ msgstr "Resim Yakala" #~ msgid "Not enough free space left on disk" #~ msgstr "Diskte yeterli boş yer yok" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - sıkıştırılmamış YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - sıkıştırılmamış BMP" #~ msgid "AVI - avi format" #~ msgstr "AVI - avi biçimi" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska biçimi" #~ msgid "WEBM - format" #~ msgstr "WEBM - biçimi" #~ msgid " Show" #~ msgstr " Göster" #~ msgid "Quality:" #~ msgstr "Kalite:" #~ msgid "VBR" #~ msgstr "VBR (Değişken bitoranı)" #~ msgid "Bit Rate:" #~ msgstr "Bit Oranı:" #~ msgid "Resolution" #~ msgstr "Çözünürlük" #~ msgid "Profile" #~ msgstr "Profil" guvcview-2.0.2+debian/po/gview_v4l2core/uk.po000066400000000000000000000474661256377215300210620ustar00rootroot00000000000000# Ukrainian translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Керуючі елементи користувача" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Яскравість" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контраст" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Відтінок" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Насиченість" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Різкість" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гамма" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Компенсація підсвітки" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Частота електромережі" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Авто відтінок" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Авто фокус" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручний режим" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Авторежим" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Пріоритет затвору" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Пріоритет діафрагми" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Рівень чорного" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Авто баланс білого" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Збалансувати білий" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Баланс червоного" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Баланс синього" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Експозиція" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Авто посилення" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Посилення" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Горизонтальне віддзеркалення" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Вертикальне віддзеркалення" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Горизонтальна середина" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Вертикальна середина" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Подавлювач кольору" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Ефекти кольору" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Керування камерою" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Авто експозиція" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Абсолютний час експозиції" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Експозиція, динамічна частота кадрів" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Відносний поворот" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Відносний нахил" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Скинути поворот" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Скинути нахил" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Абсолютний поворот" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Відносний фокус" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Авто фокус" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Абсолютний зум" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Відносний зум" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Безперервний зум" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Конфіденційність" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Авто експозиція" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Пріоритет авто експозиції" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Абсолютна експозиція" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Авто температура балансу білого" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура балансу білого" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Авто компонент балансу білого" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Синій компонент балансу білого" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Червоний компонент балансу білого" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокус" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "Авторежим" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Відносний поворот" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Відносний нахил" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Скинути поворот" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Скинути нахил" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Метод світлодіода" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Частота світлодіода" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Відключити обробку відео" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Сирі біти на піксель" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "Вивід камери:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - стиснено" #~ msgid "MPEG video 1" #~ msgstr "MPEG-відео 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 флеш-відео 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - відео Windows Media 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - формат MPG2" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "Аудіо API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "Пристрій вводу:" #~ msgid "Sample Rate:" #~ msgstr "Частота дискредитації:" #~ msgid "Dev. Default" #~ msgstr "Пристрій по замовч." #~ msgid "Channels:" #~ msgstr "Канали:" #~ msgid "1 - mono" #~ msgstr "1 - моно" #~ msgid "2 - stereo" #~ msgstr "2 - стерео" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---- Відео фільтри ----" #~ msgid " Echo" #~ msgstr " Ехо" #~ msgid " Reverb" #~ msgstr " Ревербація" #~ msgid " Fuzz" #~ msgstr " Пух" #~ msgid " WahWah" #~ msgstr " ВахВах" #~ msgid " Ducky" #~ msgstr " Голубка" #~ msgid "Error" #~ msgstr "Помилка" #, fuzzy #~ msgid "_Cancel" #~ msgstr "відмінити" #~ msgid "" #~ "\n" #~ "You have more than one video device installed.\n" #~ "Do you want to try another one ?\n" #~ msgstr "" #~ "\n" #~ "Встановлено більше одного відео пристрою.\n" #~ "Ви хочете спробувати ще один?\n" #~ msgid "Device:" #~ msgstr "Пристрій:" #~ msgid "Guvcview Video Capture" #~ msgstr "Захоплювач відео Guvcview" #, fuzzy #~ msgid "Guvcview" #~ msgstr "Попередження:" #~ msgid "Image Controls" #~ msgstr "" #~ "Керування\n" #~ "зображенням" #, fuzzy #~ msgid "Video Controls" #~ msgstr "Керуючі елементи користувача" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "Керуючі елементи користувача" #, fuzzy #~ msgid "Photo file name" #~ msgstr "Файл зображення" #, fuzzy #~ msgid "Video file name" #~ msgstr "Файл зображення" #~ msgid "start new" #~ msgstr "запустити новий" #~ msgid "restart" #~ msgstr "перезавантаж." #~ msgid "new" #~ msgstr "новий" #~ msgid "cancel" #~ msgstr "відмінити" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "запустити новий процес, \n" #~ "чи перезавантажити?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "значення аудіо-кодека" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " частота кадрів: \n" #~ " (0 - використати значення з випадаючого списку)" #~ msgid "bit rate: " #~ msgstr "бітрейт: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "макс. qdiff: " #~ msgid "dia size: " #~ msgstr "dia size: " #~ msgid "pre dia size: " #~ msgstr "pre dia size: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "значення лічильника прогнозиста: " #~ msgid "gop size: " #~ msgstr "gop size: " #~ msgid "qcompress: " #~ msgstr "qcompress " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me method: " #~ msgid "mb decision: " #~ msgstr "mb decision: " #~ msgid "max B frames: " #~ msgstr "max B frames: " #~ msgid "audio codec values" #~ msgstr "значення аудіо-кодека" #~ msgid "Left" #~ msgstr "Лівий" #~ msgid "Right" #~ msgstr "Правий" #~ msgid "Down" #~ msgstr "Вниз" #~ msgid "Up" #~ msgstr "Вверх" #~ msgid "Auto Focus (continuous)" #~ msgstr "Авто фокус (безперервний)" #~ msgid "set Focus" #~ msgstr "встановити фокус" #, fuzzy #~ msgid "_Apply" #~ msgstr "Застосувати" #~ msgid "Frame Rate:" #~ msgstr "Частота кадрів:" #~ msgid "Resolution:" #~ msgstr "Роздільна здатність:" #~ msgid "Camera Output:" #~ msgstr "Вивід камери:" #~ msgid "---- Video Filters ----" #~ msgstr "---- Відео фільтри ----" #~ msgid " Mirror" #~ msgstr " Гор. віддзеркал." #~ msgid " Invert" #~ msgstr " Верт. віддзеркал." #~ msgid " Negative" #~ msgstr " Негатив" #~ msgid " Mono" #~ msgstr " Чорно-біле" #~ msgid " Pieces" #~ msgstr " Мозаїка" #~ msgid " Particles" #~ msgstr " Часточки" #, fuzzy #~ msgid "Print version" #~ msgstr "Показує версію" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "Використаний відео-пристрій [default: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "Метод захоплення (1-mmap (замовч.) 2-read)" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Попередження:" #~ msgid "Audio" #~ msgstr "Аудіо" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Ефекти аудіо ----" #~ msgid "Save File" #~ msgstr "Зберегти" #~ msgid "codec values" #~ msgstr "значення кодека" #~ msgid "Cap. Video" #~ msgstr "Відео" #~ msgid "GUVCViewer Controls" #~ msgstr "Панель налаштувань Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу відкрити пристрій" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Переконайтесь, що камера підключена\n" #~ "і встановлено відповідний драйвер." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Елементи керування розширенням UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Керуючі елементи розширення були додані до драйверу UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Керуючі елементи UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Виникла помилка в процесі додавання керуючих \n" #~ "елементів розширення до драйверу UVC.\n" #~ "Переконайтесь що Guvcview запущено від імені root (чи sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу встановити правильний відео потік для Guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Переконайтесь, що драйвер сумісний з v4l2\n" #~ "і встановлений правильно." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу запуститись з мінімальною установкою" #~ msgid "Please reconnect your camera." #~ msgstr "Будь ласка, повторно підключіть свою камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу надіслати запит про можливості пристрою" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Переконайтесь, що драйвер пристрою підтримує v4l2" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Помилка методу зчитування." #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Будь ласка, спробуйте mmap instead (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу виділити місце під Буфери." #~ msgid "Please try restarting your system." #~ msgstr "Будь ласка, спробуйте перезавантажити систему." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу створити потік команд для відео" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Будь ласка, повідомте про це тут http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Показує інформацію для відлагоджування" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Вийти після додавання керуючих елементів розширення UVC\n" #~ "(потрібні права адміністратора)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Не потокове відео (керувати лише зображенням)" #~ msgid "Configuration file" #~ msgstr "Файл конфігурації" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Апаратне прискорення (увімкн.(1) | вимкн.(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Розмір кадру (замовч. - 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Інтервал між знімками (сек.)" #~ msgid "Number of Pictures to capture" #~ msgstr "Кількість знімків" #~ msgid "Video File name (capture from start)" #~ msgstr "Файл відео (запис зразу після запуску)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Тривалість запису (сек.)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Вийти з Guvcview після закриття відео" #~ msgid "Number of initial frames to skip" #~ msgstr "Кількість початкових кадрів для пропуску" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Відображення частоти кадрів (увімкн.(1) | вимкн. (0))" #~ msgid "Load Profile at start" #~ msgstr "Завантажити профіль при запуску" #~ msgid "- local options" #~ msgstr "- локальні параметри" #~ msgid "Cap. Image" #~ msgstr "Знімок" #~ msgid "Not enough free space left on disk" #~ msgstr "Не вистачає вільного місця на диску" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - не стиснений YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - не стиснений BMP" #~ msgid " Show" #~ msgstr " Показати" #~ msgid "Quality:" #~ msgstr "Якість:" guvcview-2.0.2+debian/po/gview_v4l2core/zh_TW.po000066400000000000000000000367741256377215300214760ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: kentxchang \n" "Language-Team: none \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Poedit-Country: TAIWAN\n" "X-Poedit-Language: Chinese\n" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "使用者設定" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "亮度" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "對比" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "色調" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "飽和度" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "銳利度" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "伽瑪值" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "背光補償" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "視訊頻率" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "自動色調" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "自動對焦" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "手動模式" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "自動模式" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "快門優先模式" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "光圈優先模式" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "黑色等級" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "自動白平衡" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "設置白平衡" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "紅平衡" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "藍平衡" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "曝光度" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "自動增益" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "增益" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "水平翻轉" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "垂直翻轉" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "水平中心" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "垂直中心" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "濃度AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "顏色 killer" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "色彩效果" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "攝影機設定" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "自動曝光" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "絕對曝光時間" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "曝光,動態碼率" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "筆,相對的" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "傾斜,相對的" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "筆,重設" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "傾斜,重設" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "筆,絕對的" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "對焦,絕對的" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "對焦,相對的" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "對焦,自動" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "變焦,絕對的" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "變焦,相對的" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "變焦,連續的" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "隱私" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "曝光,自動" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "曝光,自動優先" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "曝光(絕對)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "白平衡溫度,自動" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "白平衡溫度" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "白平衡元件,自動" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "白平衡藍元件" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "白平衡紅元件" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "對焦" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "對焦(絕對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 #, fuzzy msgid "Auto" msgstr "自動模式" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Pan (相對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "傾斜(相對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Pan 重設" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "傾斜重設" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "對焦(絕對值)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1模式" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1頻率" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "停用影像處理" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bits per pixel" #, fuzzy #~ msgid "Raw camera input" #~ msgstr "攝影機輸出:" #~ msgid "MJPG - compressed" #~ msgstr "MJPG - compressed" #~ msgid "MPEG video 1" #~ msgstr "MPEG video 1" #~ msgid "FLV1 - flash video 1" #~ msgstr "FLV1 - flash video 1" #~ msgid "WMV1 - win. med. video 7" #~ msgstr "WMV1 - win. med. video 7" #~ msgid "MPG2 - MPG2 format" #~ msgstr "MPG2 - MPG2 format" #~ msgid "MS MP4 V3" #~ msgstr "MS MP4 V3" #~ msgid "MPEG4-ASP" #~ msgstr "MPEG4-ASP" #~ msgid "MPEG4-AVC (H264)" #~ msgstr "MPEG4-AVC (H264)" #~ msgid "Audio API:" #~ msgstr "音頻API:" #~ msgid "PORTAUDIO" #~ msgstr "PORTAUDIO" #~ msgid "PULSEAUDIO" #~ msgstr "PULSEAUDIO" #~ msgid "Input Device:" #~ msgstr "輸入設備:" #~ msgid "Sample Rate:" #~ msgstr "範例碼率:" #~ msgid "Dev. Default" #~ msgstr "Dev. Default" #~ msgid "Channels:" #~ msgstr "聲道:" #~ msgid "1 - mono" #~ msgstr "1 - mono" #~ msgid "2 - stereo" #~ msgstr "2 - stereo" #, fuzzy #~ msgid "---- Audio Filters ----" #~ msgstr "---影像濾波器---" #~ msgid " Echo" #~ msgstr " 迴聲" #~ msgid " Reverb" #~ msgstr " Reverb" #~ msgid " Fuzz" #~ msgstr " 模糊" #~ msgid " WahWah" #~ msgstr " WahWah" #~ msgid " Ducky" #~ msgstr " Ducky" #, fuzzy #~ msgid "_Cancel" #~ msgstr "取消" #~ msgid "Device:" #~ msgstr "設備:" #~ msgid "Guvcview Video Capture" #~ msgstr "Guvcview Video Capture" #, fuzzy #~ msgid "Guvcview" #~ msgstr "Guvcview警告:" #~ msgid "Image Controls" #~ msgstr "影像設定" #, fuzzy #~ msgid "Video Controls" #~ msgstr "使用者設定" #, fuzzy #~ msgid "Audio Controls" #~ msgstr "使用者設定" #, fuzzy #~ msgid "Photo file name" #~ msgstr "圖片檔案名稱" #, fuzzy #~ msgid "Video file name" #~ msgstr "圖片檔案名稱" #~ msgid "start new" #~ msgstr "馬上啟動" #~ msgid "restart" #~ msgstr "重新啟動" #~ msgid "new" #~ msgstr "新增" #~ msgid "cancel" #~ msgstr "取消" #~ msgid "" #~ "launch new process or restart?.\n" #~ "\n" #~ msgstr "" #~ "啟動新的程序或重新啟動?\n" #~ "\n" #, fuzzy #~ msgid "video codec values" #~ msgstr "音頻編碼器數值" #~ msgid "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgstr "" #~ " encoder fps: \n" #~ " (0 - use fps combobox value)" #~ msgid "bit rate: " #~ msgstr "bit rate: " #~ msgid "qmax: " #~ msgstr "qmax: " #~ msgid "qmin: " #~ msgstr "qmin: " #~ msgid "max. qdiff: " #~ msgstr "max. qdiff: " #~ msgid "dia size: " #~ msgstr "dia size: " #~ msgid "pre dia size: " #~ msgstr "pre dia size: " #~ msgid "pre me: " #~ msgstr "pre me: " #~ msgid "pre cmp: " #~ msgstr "pre cmp: " #~ msgid "cmp: " #~ msgstr "cmp: " #~ msgid "sub cmp: " #~ msgstr "sub cmp: " #~ msgid "last predictor count: " #~ msgstr "last predictor count: " #~ msgid "gop size: " #~ msgstr "gop size: " #~ msgid "qcompress: " #~ msgstr "qcompress: " #~ msgid "qblur: " #~ msgstr "qblur: " #~ msgid "subq: " #~ msgstr "subq: " #~ msgid "framerefs: " #~ msgstr "framerefs: " #~ msgid "me method: " #~ msgstr "me method: " #~ msgid "mb decision: " #~ msgstr "mb decision: " #~ msgid "audio codec values" #~ msgstr "音頻編碼器數值" #~ msgid "Left" #~ msgstr "左" #~ msgid "Right" #~ msgstr "右" #~ msgid "Down" #~ msgstr "下" #~ msgid "Up" #~ msgstr "上" #~ msgid "Auto Focus (continuous)" #~ msgstr "自動對焦(連續)" #~ msgid "set Focus" #~ msgstr "設定焦點" #, fuzzy #~ msgid "_Apply" #~ msgstr "套用" #~ msgid "Frame Rate:" #~ msgstr "影格率" #~ msgid "Resolution:" #~ msgstr "影像尺寸:" #~ msgid "Camera Output:" #~ msgstr "攝影機輸出:" #~ msgid "---- Video Filters ----" #~ msgstr "---影像濾波器---" #~ msgid " Mirror" #~ msgstr " 鏡像(水平翻轉)" #~ msgid " Invert" #~ msgstr " 倒置(垂直翻轉)" #~ msgid " Negative" #~ msgstr " 負片效果" #~ msgid " Mono" #~ msgstr " 灰階" #~ msgid " Pieces" #~ msgstr " 馬賽克" #~ msgid " Particles" #~ msgstr " 顆粒" #, fuzzy #~ msgid "Print version" #~ msgstr "列印版本" #, fuzzy #~ msgid "Set device name (def: /dev/video0)" #~ msgstr "使用影像設備[default: /dev/video0]" #, fuzzy #~ msgid "Set capture method [read | mmap (def)]" #~ msgstr "擷取方法(1-mmap (default) 2-read)" #, fuzzy #~ msgid "" #~ "Guvcview version %s\n" #~ "\n" #~ msgstr "Guvcview警告:" #~ msgid "Audio" #~ msgstr "音頻" #~ msgid " Sound" #~ msgstr " 聲音" #~ msgid "---- Audio Effects ----" #~ msgstr "---音頻效果---" #~ msgid "Save File" #~ msgstr "存檔" #~ msgid "codec values" #~ msgstr "編解碼器的值" #~ msgid "Cap. Video" #~ msgstr "錄影" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer設定" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "請確定攝影機已連接\n" #~ "且已安裝正確的驅動程式" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC 外掛控制" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "外掛控制已經被新增到UVC驅動程式中" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "UVC 外掛控制" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "當新增外掛時有一個錯誤發生\n" #~ "控制UVC驅動程式\n" #~ "確定你是使用root(或sudo)來執行guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "不能為guvcview設置一個有效視訊串流值" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "請確定您的設備驅動程式符合v4l2標準\n" #~ "且它已被正確安裝。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "無法啟動最小安裝" #~ msgid "Please reconnect your camera." #~ msgstr "請重新連接你的攝影機" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "確定你的設備驅動程式支援 v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "請試試mmap而不是(--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please try restarting your system." #~ msgstr "請試試重新啟動你的系統." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "請回報到http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "顯示debug訊息" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "在新增外掛控制後離開(需要使用root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "不能串流影像(只能控制圖片)" #~ msgid "Configuration file" #~ msgstr "設置檔案" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "硬體加速(啟用(1) | 停用(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "影格尺寸,預設值:640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "圖片擷取間隔秒數" #~ msgid "Number of Pictures to capture" #~ msgstr "圖片擷取數" #~ msgid "Video File name (capture from start)" #~ msgstr "影像檔案名稱(從開始擷取)" #~ msgid "Video capture time (in seconds)" #~ msgstr "影像擷取時間(秒數)" #~ msgid "Exits guvcview after closing video" #~ msgstr "在關掉影像後離開guvcview" #~ msgid "Number of initial frames to skip" #~ msgstr "跳過的初始影格數" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "顯示FPS值(啟用(1) | 停用 (0))" #~ msgid "Load Profile at start" #~ msgstr "在啟動時讀取專案" #~ msgid "- local options" #~ msgstr "-本地選項" #~ msgid "Cap. Image" #~ msgstr "拍照" #~ msgid "Not enough free space left on disk" #~ msgstr "在硬碟上沒有足夠的剩餘空間" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid " Show" #~ msgstr " 顯示" #~ msgid "Quality:" #~ msgstr "品質:" guvcview-2.0.2+debian/po/he.po000066400000000000000000001006711256377215300161620ustar00rootroot00000000000000# Hebrew translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "פקדי משתמש" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "בהירות" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "ניגודיות" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "גוון" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "רוויה" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "חדות" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "גאמה" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "פיצוי אור אחורי" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "תדר חשמל" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "גוון, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "מיקוד, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "מצב ידני" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "מצב אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "מצב עדיפות צמצם" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "רמת שחור" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "איזון לובן, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "איזון האדום" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "איזון הכחול" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "חשיפה" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "מרווח, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "הישג" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "היפוך אופקי" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "היפוך אנכי" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "מרכז אופקי" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "מרכז אנכי" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "פקדי מצלמה" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "חשיפה אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "זמן חשיפה, מוחלט" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "נטייה, יחסי" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "נטייה, אפס" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "מיקוד, מוחלט" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "מיקוד, יחסי" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "מיקוד, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "פרטיות" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "חשיפה, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "חשיפה, עדיפות אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "חשיפה (מוחלטת)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "טמפרטורת איזון הלבן, אוטומטית" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "טפמרטורת איזון הלבן" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "רכיב איזון הלבן, אוטומטי" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "רכיב איזון הלבן הכחול" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "רכיב איזון הלבן האדום" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "הטייה (יחסי)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "איפוס הטייה" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "מיקוד (מוחלט)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "מצב LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "תדר LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "בטל עיבוד וידאו" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "פלט מצלמה:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - מקובץ" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG וידאו 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - וידאו פלאש 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - וינדוס מדיה וידאו 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - פורמט MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "קצב דגימה" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "ערוצים:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - מונו" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - סטריאו" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "--- מסנני וידאו ---" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " הד" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "בטל" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "התקן:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "פקדי תמונה" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "פקדי משתמש" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "פקדי משתמש" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "פקדי משתמש" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "שם קובץ תמונה" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "שם קובץ תמונה" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "הפעל עכשיו" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "הפעל מחדש" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "חדש" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "בטל" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "הפעל תהליך חדש או הפעל מחדש?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "ערכי מקודד" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "קצב סיביות: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "פקדי תמונה" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "קצב סיביות: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "רזולוציה:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "פקדי תמונה" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 msgid "Frame Interval" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 msgid "B Frames:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "שמאל" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "ימין" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "למטה" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "למעלה" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "מיקוד אוטומטי (מתמשך)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "הגדר מיקוד" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "החל" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "רזולוציה:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "פלט מצלמה:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "--- מסנני וידאו ---" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " מראה" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " הפוך" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr "" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " מונו" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " חלקים" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "מדפיס גרסה" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "התקן וידאו לשימוש [ברירת מחדל:/dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "שמע" #~ msgid " Sound" #~ msgstr " קול" #~ msgid "---- Audio Effects ----" #~ msgstr "--- אפקטים קוליים ---" #~ msgid "Save File" #~ msgstr "שמור קובץ" #~ msgid "Cap. Video" #~ msgstr "לכד וידאו" #~ msgid "GUVCViewer Controls" #~ msgstr "פקדי GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול לפתוח התקן" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "אנא וודא שהמצלמה מחוברת\n" #~ "ושמנהל ההתקן הנכון מותקן." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול להגדיר זרימת וידאו תקפה לguvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "וודא שמנהל ההתקן שלך תואם v4l2\n" #~ "ושהוא מותקן כהלכה." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן להתחיל עם התקנה מינימאלית" #~ msgid "Please reconnect your camera." #~ msgstr "אנא חבר מחדש את המצלמה." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן לבדוק את יכולות ההתקן" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "וודא שמנהל ההתקן שלך תואם v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "קרא שגיאת שיטה" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "נסה את mmap במקום (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא ניתן להקצות חוצץ" #~ msgid "Please try restarting your system." #~ msgstr "נסה לאתחל את המערכת." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "שגיאה בGuvcview:\n" #~ "\n" #~ "לא יכול ליצור שרשור וידאו" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "דווח על כך לhttp://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Configuration file" #~ msgstr "קובץ הגדרות" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "האצת חומרה (פעיל(1) | מנוטרל(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "גודל פריים, ברירת מחדל: 640x480" #~ msgid "Number of Pictures to capture" #~ msgstr "מספר תמונות ללכידה" #~ msgid "Video File name (capture from start)" #~ msgstr "שם קובץ וידאו (לוכד מההתחלה)" #~ msgid "Video capture time (in seconds)" #~ msgstr "זמן לכידת וידאו (בשניות)" #~ msgid "Exits guvcview after closing video" #~ msgstr "יוצא מguvcview אחרי סגירת וידאו" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "מראה ערך פריימים לשניה (FPS) (פעיל(1) | מנוטרל(2))" #~ msgid "Load Profile at start" #~ msgstr "טען פרופיל בהפעלה" #~ msgid "- local options" #~ msgstr "- אפשרויות מקומיות" #~ msgid "Cap. Image" #~ msgstr "לכד תמונה" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV לא מקובץ" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP לא מקובץ" #~ msgid " Show" #~ msgstr " הצג" #~ msgid "Quality:" #~ msgstr "איכות:" guvcview-2.0.2+debian/po/hr.po000066400000000000000000001007611256377215300161770ustar00rootroot00000000000000# Croatian translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-09-27 09:35+0000\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 #, fuzzy msgid "guvcview" msgstr "Guvcview Upozorenje" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Korisničke Kontrole" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Osvjetljenje" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Nijansa" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Zasićenje" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Oštrina" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Ispravke pozadinskog osvjetljenja" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokusiranje, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ručni Način" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatski Način" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Razina Crne boje" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Ravnoteža Bijele, Automatski" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Uredi Ravnotežu Bijele" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Ravnoteža Crvene" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Ravnoteža Plave" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Izloženost" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Dobit" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Vodoravno Okretanje" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Okomito Okretanje" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Vodoravno Centriraj" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Okomito Centriraj" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekti boje" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrole Kamere" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatska Izloženost" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Vrijeme Izloženosti, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Izloženost, Broj Slika" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokusiranje, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokusiranje, Relativno" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokusiranje, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Približavanje, Apsolutno" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Približavanje, Relativno" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Približavanje, Neprestano" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privatnost" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Izloženost, Automatsko" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Izloženost (Apsolutna)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokusiranje" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Ulazni uređaj:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Zadane Postavke Uređaja" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanali:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Video Filteri ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Jeka" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Odjek" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Mutno" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Patka" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Zaustavi Video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Snimi Video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Grješka" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "odustani" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Imate više uređaja instalirano.\n" "Želite li isprobati ostale?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Uređaj:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview Snimanje Videa" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "Guvcview Upozorenje" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Zaustavi Automatsko (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Snimi Sliku (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Kontrole Slike" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Korisničke Kontrole" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Korisničke Kontrole" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Korisničke Kontrole" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Ime Slikovne Datoteke" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Ime Slikovne Datoteke" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "pokreni novo" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "ponovo pokreni" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "novo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "odustani" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "upalite novi proces ili ponovno pokrenite?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "vrijednosti audio codeca" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "vrijednosti audio codeca" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Kontrole Slike" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "Broj Slika:" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Razlučivost:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Kontrole Slike" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Broj Slika:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Broj Slika:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 msgid "Encoder Reset" msgstr "" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Lijevo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Desno:" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Dolje" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Gore" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Automatski Focus (neprekidno)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "postavi fokusiranje" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Primjeni" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Broj Slika:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Razlučivost:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Video Filteri ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Zrcalo" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Izokrenuto" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativ" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Komadići" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Čestice" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Isprintaj verziju" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Video uređaj rabljen [zadani: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview Upozorenje" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Zvuk" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio Efekti ----" #~ msgid "Save File" #~ msgstr "Spremi Datoteku" #~ msgid "Cap. Video" #~ msgstr "Snimi Video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Kontrole" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče pokrenuti uređaj" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Molim provjerite dali je kamera spojena\n" #~ "i dali je instaliran ispravan driver." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC kontrole Ekstenzije" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrole Ekstenzije su dodane UVC driveru" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC kontrole Ekstenzije" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Dogodila se grješka prilikom dodavanja kontrola\n" #~ "ekstenzije UVC driveru\n" #~ "Pokrenite guvcview kao root (ili sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče postaviti vrijedeći video stream za guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Provjerite dali vaš video driver ima podršku za v4l2\n" #~ "i pogledajte dali je ispravno instaliran." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Nije moguče pokretanje s minimalnim postavkama" #~ msgid "Please reconnect your camera." #~ msgstr "Molim ponovno spajanje kamere." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview error:\n" #~ "\n" #~ "Sposobnost uređaja nije čitljiva" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Provjerite da vaš driver ima podršku za v4l2." #~ msgid "Please try restarting your system." #~ msgstr "Probajte ponovno pokrenuti vaš sustav." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview grješka:\n" #~ "\n" #~ "Nije moguče pokrenuti uređaj" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Molimo prijavite na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Izlaz nakon dodavanja UVC ekstenzivnih kontrola (potreban root/sudo)" #~ msgid "Configuration file" #~ msgstr "Datoteka Postavki" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardversko ubrzanje (omoguči(1) | onemoguči(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Veličina slike, zadana: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Interval slikanja u sekundama" #~ msgid "Number of Pictures to capture" #~ msgstr "Broj Slika za snimiti" #~ msgid "Video File name (capture from start)" #~ msgstr "Ime Video Datoteke (snimka od početka)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Vrijeme snimanja videa (u sekundama)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Izlaz iz guvcviewa nakon zatvaranja videa" #~ msgid "Number of initial frames to skip" #~ msgstr "Broj preskočenih početnih slika" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Prikaz FPS broja (omoguči(1) | onemoguči (0))" #~ msgid "Load Profile at start" #~ msgstr "Učitaj Profil pri pokretanju" #~ msgid "- local options" #~ msgstr "- lokalne opcije" #~ msgid "Cap. Image" #~ msgstr "Snimi Sliku" #~ msgid "Not enough free space left on disk" #~ msgstr "Nema dovoljno slobodnog prostora na disku" #~ msgid " Show" #~ msgstr " Prikaži" #~ msgid "Quality:" #~ msgstr "Kvaliteta:" guvcview-2.0.2+debian/po/insert-header.sin000066400000000000000000000012401256377215300204630ustar00rootroot00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } guvcview-2.0.2+debian/po/it.po000066400000000000000000001113511256377215300161770ustar00rootroot00000000000000# Translation of guvcview to the Italian language # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # Giovanni Scafora , 2013. # # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-07 02:31+0000\n" "Last-Translator: Giovanni Scafora \n" "Language-Team: Arch Linux Italian Team \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC visualizzatore video" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Un visualizzatore e catturatore video per il driver uvc di linux" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlli dell'utente" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Luminosità" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrasto" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Colore" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturazione" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidezza" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensazione del controluce" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequenza di aggiornamento" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Colore automatico" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Messa a fuoco automatica" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modalità manuale" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modalità automatica" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modalità di priorità dell'otturatore" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modalità di priorità dell'apertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Livello del nero" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Bilanciamento automatico del bianco" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Bilanciamento del bianco" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Bilanciamento del rosso" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Bilanciamento del blu" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Esposizione" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Guadagno automatico" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Guadagno" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Rifletti orizzontalmente" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Rifletti verticalmente" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Centra orizzontalmente" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Centra verticalmente" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Killer del colore" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Effetti del colore" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlli della webcam" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Esposizione automatica" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo di esposizione assoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Esposizione, framerate dinamico" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Panoramica relativa" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinazione relativa" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Ripristina la panoramica" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Ripristina l'inclinazione" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Panoramica assoluta" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Messa a fuoco assoluta" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Messa a fuoco relativa" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Messa a fuoco automatica" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom assoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom continuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacy" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Esposizione automatica" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esposizione, priorità automatica" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Esposizione (assoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Bilanciamento del bianco automatico" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Bilanciamento del bianco" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Bilanciamento dei componenti del bianco automatico" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Bilanciamento del bianco, canale blu" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Bilanciamento del bianco, canale rosso" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Messa a fuoco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Messa a fuoco (assoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Spento" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Acceso" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Lampeggiante" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automatico" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Panoramica (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinazione (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Ripristina la panoramica" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Ripristina l'inclinazione" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Messa a fuoco (assoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modalità LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequenza LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Disabilita l'elaborazione video" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bit per pixel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - non compresso (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Uscita della webcam:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compresso" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - formato MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "API dell'audio:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Dispositivo di ingresso:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Frequenza di campionamento:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Impostazione predefinita del dispositivo" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canali:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtri video ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Eco" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Riverbero" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Rumore" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Anatroccolo" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Ferma il video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Registra video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Errore" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "annulla" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "C'è più di un dispositivo video installato.\n" "Vuoi provare l'altro ?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Dispositivo:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Cattura video di Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Arresto automatico (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cattura immagine (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Controlli dell'immagine" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Controlli dell'utente" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Controlli dell'utente" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Controlli dell'utente" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Carica profilo" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Formato del file:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Nome del file immagine" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Immagine raw (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Nome del file immagine" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "inizia nuovo" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "riavvia" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "nuovo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "annulla" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "vuoi lanciare un nuovo processo o riavviare?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "valori del codec audio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " encoder fps: \n" " (0 - usare il valore fps della combobox)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " punti monocromatici" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bit rate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dim. dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "dim. pre dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "conteggio dell'ultimo indicatore: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "dim. gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "metodo me: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "decisione mb: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "numero massimo di immagini B: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "numero di thread: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "valori del codec audio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "Formato di campionamento: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Controlli dell'immagine" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bit rate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Risoluzione:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Controlli dell'immagine" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Frame rate:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Salva profilo" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Formato del file:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - formato avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "numero massimo di immagini B: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Ripristina la panoramica" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Impostazioni" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Ripristina l'hardware di default" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Pulsante della camera" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Cattura l'immagine" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Registra il video" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "File" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Incrementa il nome del file" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Codec video" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Proprietà del codec video" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Codec audio" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Proprietà del codec audio" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Sinistra" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Destra" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Sotto" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Sopra" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Messa a fuoco automatica (continua)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "imposta la messa a fuoco" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Applica" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Frame rate:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Risoluzione:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Uscita della webcam:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtri video ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Specchio" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Inverti" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativo" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Monocromatico" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Pezzi" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Particelle" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Visualizza la versione" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Dispositivo video da utilizzare [predefinito: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Metodo di registrazione (1-mmap (predefinito) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Carica profilo" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Avviso di Guvcview:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "registra video da" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Suono" #~ msgid " Show VU meter" #~ msgstr " Visualizza VU meter" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Effetti audio ----" #~ msgid "Save File" #~ msgstr "Salva file" #~ msgid "codec values" #~ msgstr "valori dei codec" #~ msgid "capturing photo to" #~ msgstr "cattura foto da" #~ msgid "Cap. Video" #~ msgstr "Registra video" #~ msgid "GUVCViewer Controls" #~ msgstr "Controlli di Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile accedere al dispositivo" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Assicurarsi che la webcam sia connessa\n" #~ "e che sia installato il rispettivo driver." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controlli dell'estensione di UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "I controlli dell'estensione sono stati aggiunti al driver UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Controlli dell'estensione di UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Si è verificato un errore nell'aggiungere\n" #~ "i controlli dell'estensione al driver UVC\n" #~ "Assicurarsi di avviare guvcview da root (o sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile impostare un flusso video valido per guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Assicurarsi che il driver del dispositivo sia\n" #~ "v4l2 compatibile e che sia correttamente installato." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile avviare con l'installazione minima" #~ msgid "Please reconnect your camera." #~ msgstr "Riconnettere la webcam." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile interrogare le funzionalità del dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Assicurarsi che il driver del dispositivo supporti v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Errore del metodo di lettura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "In alternativa, provare mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile allocare i buffer" #~ msgid "Please try restarting your system." #~ msgstr "Provare a riavviare il sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Errore di Guvcview:\n" #~ "\n" #~ "Impossibile creare un flusso video" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Siete pregati di segnalarlo a http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Visualizza le informazioni di debug" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Uscire dopo aver aggiunto i controlli dell'estensione di UVC (necessita " #~ "di root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Non attivare il flusso video (solo controlli dell'immagine)" #~ msgid "Don't display a GUI" #~ msgstr "Non visualizzare la GUI" #~ msgid "Configuration file" #~ msgstr "File di configurazione" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Accelerazione hardware (abilita(1) | disabilita(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formato del pixel(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Risoluzione predefinita: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervallo di registrazione dell'immagine in secondi" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero di immagini da registrare" #~ msgid "Video File name (capture from start)" #~ msgstr "Nome del file video (registra dall'inizio)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Durata della registrazione video (in secondi)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Esci da guvcview dopo aver chiuso il video" #~ msgid "Number of initial frames to skip" #~ msgstr "Numero di immagini iniziali da ignorare" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Mostra il valore degli FPS (abilita(1) | disabilita (0))" #~ msgid "Load Profile at start" #~ msgstr "Carica profilo all'avvio" #~ msgid "- local options" #~ msgstr "- opzioni locali" #~ msgid "Cap. Image" #~ msgstr "Cattura immagine" #~ msgid "Not enough free space left on disk" #~ msgstr "Spazio libero sul disco insufficiente" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV non compresso" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP non compresso" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - formato Matroska" #~ msgid "WEBM - format" #~ msgstr "WEBM - formato WEBM" #~ msgid " Show" #~ msgstr " Visualizza" #~ msgid "Quality:" #~ msgstr "Qualità:" guvcview-2.0.2+debian/po/ja.po000066400000000000000000000753231256377215300161650ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Nobuhiro Iwamatsu , 2009. # msgid "" msgstr "" "Project-Id-Version: GUVCView 1.0.2\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Poedit-Country: JAPAN\n" "X-Poedit-Language: Japanese\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "輝度" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "コントラスト" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "色相" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "彩度" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "鮮明度" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ガンマ" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "バックライト補正" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "電源ライン周波数" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "フォーカス,自動" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "手動モード" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "自動モード" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "シャッター優先モード" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "絞り優先モード" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ゲイン" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "露出、自動" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "露出、自動優先" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposure (完全な)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "ホワイトバランス温度、自動" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "ホワイトバランス温度" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "ホワイトバランス成分、自動" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "ホワイトバランス青成分" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "ホワイトバランス赤成分" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "パン (相対)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "チルト (相対)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "パン リセット" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "チルト リセット" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "フォーカス (完全な)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 モード" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 回数" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "ビデオ処理 を無効にする" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "1画素あたりの生のビット" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "カメラ出力:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - 圧縮" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "入力デバイス:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "サンプルレート:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "デバイス デフォルト" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "チャンネル:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - モノラル" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - ステレオ" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- ビデオフィルタ ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "キャンセル" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "デバイス:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "イメージコントロール" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "イメージコントロール" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "GUVCViewer コントロール" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "イメージコントロール" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "画像ファイル名" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "画像ファイル名" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "新しく開始する" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "再起動" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "新規" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "キャンセル" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "新しいプロセスを立ち上げるか、再起動しますか?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 msgid "video codec values" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "イメージコントロール" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "フレームレート:" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "解像度:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "イメージコントロール" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "フレームレート:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "フレームレート:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "パン リセット" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "左" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "右" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "下" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "上" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "オートフォーカス(連続)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "フォーカスを設定する" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 msgid "_Apply" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "フレームレート:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "解像度:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "カメラ出力:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- ビデオフィルタ ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " 鏡" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " 反転" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " ネガ" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " モノクロ" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " 断片" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "バージョンを表示する" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "使用するビデオデバイス [デフォルト: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "オーディオ" #~ msgid " Sound" #~ msgstr " サウンド" #~ msgid "---- Audio Effects ----" #~ msgstr "---- オーディオ エフェクト ----" #~ msgid "Save File" #~ msgstr "ファイルを保存する" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "デバイスをオープンすることができません" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "最小限のセットアップから始めることができません" #~ msgid "Please reconnect your camera." #~ msgstr "カメラを再接続してください。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "バッファを確保できません" #~ msgid "Please try restarting your system." #~ msgstr "システムを再起動してみてください。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview エラー:\n" #~ "\n" #~ "ビデオスレッドを作成することができません" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "http://developer.berlios.de/bugs/?group_id=8179 にレポートしてください。" #~ msgid "Displays debug information" #~ msgstr "デバッグ情報を表示する" #~ msgid "Configuration file" #~ msgstr "設定ファイル" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "ハードウェアアクセラレーション (有効(1) | 無効(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "フレームサイズ、デフォルト: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "秒単位の画像キャプチャ間隔" #~ msgid "Number of Pictures to capture" #~ msgstr "キャプチャする画像数" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS 値の表示 (有効(1) | 無効 (0))" #~ msgid "Load Profile at start" #~ msgstr "開始時にプロファイルを読み込む" #~ msgid "- local options" #~ msgstr "- ローカルオプション" #~ msgid "Cap. Image" #~ msgstr "キャプチャ.画像" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - 非圧縮 YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - 非圧縮 BMP" #~ msgid " Show" #~ msgstr " 表示" guvcview-2.0.2+debian/po/linguas000066400000000000000000000001271256377215300166060ustar00rootroot00000000000000bg bs cs da de en_AU es eu fo fr gl he hr it ja lv nl pl pt pt_BR ru si sr tr uk zh_TW guvcview-2.0.2+debian/po/lv.po000066400000000000000000001100101256377215300161730ustar00rootroot00000000000000# Latvian translation for guvcview # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-01 09:27+0000\n" "Last-Translator: tuxmaniack \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC video skatītājs" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Video skatītājs un uzņēmējs Linux UVC draiverim" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Lietotāja vadīklas" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Gaišums" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrasts" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tonis" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Piesātinājums" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Asums" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Fona apgaismojuma kompensācija" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Līnijas frekvence" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Tonis, automātiski" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Fokuss, automātiski" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Rokas režīms" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automātiskais režīms" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Aizvara prioritātes režīms" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Diafragmas prioritātes režīms" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Melnā līmenis" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Baltās krāsas līdzsvars, automātiski" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Sarkanais līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Zilais līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Pieaugums, automātiski" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Pieaugums" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontāli apgriezts" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Vertikāli apgriezts" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontāli centrā" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Vertikāli centrā" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Krāsu slepkava" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Krāsu efekti" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kameras vadīklas" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automātiska ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Ekspozīcijas laiks, absolūts" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Ekspozīcija, dinamisks kadrātrums" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Vert. pagrieziens, relatīvi" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Horiz. pagrieziens, relatīvi" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Vert. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Horiz. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Vert. pagrieziens, absolūti" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Fokuss, absolūts" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Fokuss, relatīvs" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Fokuss, automātiski" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Mērogošana, absolūta" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Mērogošana, relatīva" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Mērogošana, nepārtraukta" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privātums" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Ekspozīcija" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Ekspozīcija, automātiska prioritāte" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ekspozīcija (absolūta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Baltās krāsas līdzsvars, automātiski" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Baltās krāsas līdzsvars" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Baltās krāsas līdzsvara komponents, automātiski" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Baltās krāsas līdzsvara zilais komponents" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Baltās krāsas līdzsvara sarkanais komponents" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Fokuss" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Fokuss (absolūts)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Izslēgts" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Ieslēgts" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Mirgošana" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automātiski" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Vert. pagrieziens (relatīvi)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Horiz. pagrieziens (relatīvi)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Vert. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Horiz. pagrieziens, pārstatīt" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Fokuss (absolūts)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 režīms" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 frekvence" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Atslēgt video apstrādi" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - nesaspiests (16 biti)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Kameras izvade:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - saspiests" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 formāts" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio saskarne:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Ievades ierīce:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Nolases biežums:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Izstrādātāja noklusējums" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanāli:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Video filtri ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Atbalss" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverbācija" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Rācija" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " VahVah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Pīle" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Uzņemt video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Kļūda" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "atcelt" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Ir pieejamas vairākas video ierīces.\n" "Vai vēlaties izmēģināt citu?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Ierīce:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview video uzņemšana" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Uzņemt attēlu (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Attēla vadīklas" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Lietotāja vadīklas" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Lietotāja vadīklas" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Lietotāja vadīklas" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Ielādēt profilu" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Faila formāts:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Attēla faila nosaukums" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Raw Image (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Attēla faila nosaukums" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "sākt jaunu" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "pārstartēt" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "jauns" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "atcelt" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "palaist jaunu procesu vai pārstartēt?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "audio kodeka vērtības" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bitu ātrums: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "audio kodeka vērtības" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Attēla vadīklas" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bitu ātrums: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Izšķirtspēja:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Attēla vadīklas" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Kadru ātrums:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Saglabāt profilu" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Faila formāts:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - avi formāts" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Kadru ātrums:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Vert. pagrieziens, pārstatīt" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Iestatījumi" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Aparatūras noklusējums" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Kameras poga" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Uzņemt attēlu" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Uzņemt video" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Fails" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Automātiski pieaugošs" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Video kodeks" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Video kodeka īpašības" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Audio kodeks" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Audio kodeka īpašības" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Pa kreisi" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Pa labi" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Lejup" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Augšup" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 biti" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 biti" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Automātisks fokuss (nepārtraukts)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "iestatīt fokusu" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Pielietot" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Kadru ātrums:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Izšķirtspēja:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Kameras izvade:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Video filtri ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Spogulis" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invertēt" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negatīvs" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Melnbalts" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Mozaīka" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Daļiņas" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Izdrukas versija" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Video ierīce, kuru izmantot [noklusējums: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Uzņemšanas metode (1-mmap (noklusētais) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Ielādēt profilu" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview brīdinājums:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Skaņa" #~ msgid " Sound" #~ msgstr " Skaņa" #~ msgid " Show VU meter" #~ msgstr " Rādīt skaņas līmeņa indikatoru" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio efekti ----" #~ msgid "Save File" #~ msgstr "Saglabāt failu" #~ msgid "codec values" #~ msgstr "kodeka vērtības" #~ msgid "Cap. Video" #~ msgstr "Uzņemt video" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer vadīklas" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās atvērt ierīci" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Lūdzu, pārliecinieties, vai kamera ir pievienota\n" #~ "un pareizais draiveris ir instalēts." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC paplašinājumu vadīklas" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Paplašinājumu vadīklas tika pievienotas UVC draiverim" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "UVC paplašinājumu vadīklas" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Gadījās kļūda, pievienojot paplašinājumu\n" #~ "vadīklas UVC draiverim\n" #~ "Pārliecinieties, vai guvcview tiek palaists kā root (vai sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās iestatīt guvcview derīgu video plūsmu" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Lūdzu, pārliecinieties, vai ierīces draiveris ir v4l2 saderīgs\n" #~ "un vai tas ir pareizi instalēts." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās sākt ar minimālajiem iestatījumiem" #~ msgid "Please reconnect your camera." #~ msgstr "Lūdzu, pārvienojiet kameru." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās vaicājums ierīces iespējām" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Pārliecinieties, ka ierīces draiveris atbalsta v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Lasīšanas metodes kļūda" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Lūdzu, mēģiniet mmap, --capture_method=1 vietā." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās piešķirt buferi" #~ msgid "Please try restarting your system." #~ msgstr "Lūdzu, mēģiniet pārstartēt sistēmu." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview kļūda:\n" #~ "\n" #~ "Neizdevās izveidot video dzīslu" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Lūdzu, paziņojiet http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Attēlo atkļūdošanas informāciju" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Iziet pēc UVC paplašinājuma vadīklu pievienošanas (nepieciešams root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Nestraumēt video (tikai attēla vadīklas)" #~ msgid "Don't display a GUI" #~ msgstr "Neattēlot saskarni" #~ msgid "Configuration file" #~ msgstr "Konfigurācijas fails" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aparatūras paātrinājums (ieslēgts(1) | izslēgts(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pikseļa formāts(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Kadra lielums, noklusējums: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Attēlu uzņemšanas intervāls sekundēs" #~ msgid "Number of Pictures to capture" #~ msgstr "Attēlu skaits, cik uzņemt" #~ msgid "Video File name (capture from start)" #~ msgstr "Video faila nosaukums (uzņemt no sākuma)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video uzņemšanas laiks (sekundēs)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Iziet guvcview pēc video aizvēršanas" #~ msgid "Number of initial frames to skip" #~ msgstr "Pirmreizējo kadru skaits, ko izlaist" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Rādīt kadrātruma vērtību (ieslēgts(1) | izslēgts(0))" #~ msgid "Load Profile at start" #~ msgstr "Ielādēt profilu sākot" #~ msgid "- local options" #~ msgstr "- lokālās opcijas" #~ msgid "Cap. Image" #~ msgstr "Uzņemt attēlu" #~ msgid "Not enough free space left on disk" #~ msgstr "Diskā nav pietiekami daudz brīvas vietas" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - nesaspiests YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - nesaspiests BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska formāts" #~ msgid "WEBM - format" #~ msgstr "WEBM - formāts" #~ msgid " Show" #~ msgstr " Rādīt" #~ msgid "Quality:" #~ msgstr "Kvalitāte:" guvcview-2.0.2+debian/po/nl.po000066400000000000000000001110221256377215300161670ustar00rootroot00000000000000# Dutch translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-05-04 16:28+0000\n" "Last-Translator: Pjotr12345 \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC videokijker" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" "Een programma voor het bekijken en opnemen van video, voor het " "Linuxstuurprogramma uvc" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Bedieningsknoppen voor gebruiker" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Helderheid" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Tint" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Verzadiging" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Scherpte" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Achtergrondverlichtingscompensatie" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequentie van de elektrische aansluiting" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Waas, automatisch" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Scherpstelling, automatisch" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Handmatige modus" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Automatische modus" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Voorkeurmodus van sluiter" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Voorkeurmodus van lensopening" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Zwartniveau" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Witbalans, automatisch" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Pas witbalans toe" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Roodbalans" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Blauwbalans" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Belichting" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Versterking, automatisch" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Versterking" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Horizontaal spiegelen" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Verticaal spiegelen" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Horizontaal centreren" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Verticaal centreren" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Kleurdoder" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Kleureffecten" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Bedieningsknoppen voor camera" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Autobelichting" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Belichtingstijd, absoluut" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Belichtingstijd, dynamische opnamesnelheid" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Meedraaien, relatief" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Kantelen, relatief" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Meedraaien, terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Kantelen, terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Meedraaien, absoluut" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Scherpstellen, absoluut" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Scherpstellen, relatief" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Scherpstellen, automatisch" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoomen, absoluut" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoomen, relatief" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoomen, bij voortduring" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privéleven" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Belichting, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Belichting, auto-prioriteit" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Belichting (absoluut)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Witbalanstemperatuur, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Witbalanstemperatuur" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Witbalans-onderdeel, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Blauw witbalansonderdeel" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Rood witbalansonderdeel" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Scherpstelling" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Scherpstelling (absoluut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Uit" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Aan" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Knipperen" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Meedraaien (relatief)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Kantelen (relatief)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Meedraaien terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Kantelen terugzetten op standaardwaarden" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Scherpstellen (absoluut)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1-modus" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1-frequentie" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Videobewerking uitschakelen" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Ruwe bits per pixel" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - niet-gecomprimeerd (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Camera-uitvoer:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - gecomprimeerd" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 formaat" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Invoerapparaat:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Samplesnelheid:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Dev. standaard" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanalen:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Videofilters ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Weergalm" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Stop Video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Video Vastleggen (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Fout" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "annuleren" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "U hebt meer dan één video-apparaat geïnstalleerd.\n" "Wilt u een ander proberen?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Apparaat:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview video-opname" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Stop Auto (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Afbeelding vastleggen (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Fotobedieningsknoppen" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Bedieningsknoppen voor gebruiker" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Bedieningsknoppen voor gebruiker" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Bedieningsknoppen voor gebruiker" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Profiel laden" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Bestandtype:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Naam van fotobestand" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Raw Image (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Naam van fotobestand" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "start nieuw" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "herstarten" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "nieuw" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "annuleren" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "nieuw proces starten of herstarten?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "audio codec-waarden" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " encoder fps: \n" " (0 - gebruik fps-comboboxwaarde)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " monotonic pts" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bitrate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "diagrootte: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre-diagrootte: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "laatste telling van voorspeller: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop-grootte: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me-methode: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb-besluit: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max B frames: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "num threads: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "audio codec-waarden" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "bestandtype van voorbeeld: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Fotobedieningsknoppen" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bitrate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolutie:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Fotobedieningsknoppen" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Beelden per seconde:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Profiel opslaan" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Bestandtype:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - aviformaat" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max B frames: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Meedraaien terugzetten op standaardwaarden" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Instellingen" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Apparatuurstandaarden" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Cameraknop" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Afbeelding vastleggen" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Video vastleggen" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Bestand" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Bestandnaam aanvullen" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Videocodec" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Eigenschappen van videocodec" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Audiocodec" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Eigenschappen van audiocodec" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Links" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Rechts" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Omlaag" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Omhoog" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8-bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12-bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Automatische scherpstelling (voortdurend)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "scherpstelling instellen" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Toepassen" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Beelden per seconde:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolutie:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Camera-uitvoer:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Videofilters ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Spiegelen" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Omdraaien" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negatief" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Delen" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Deeltjes" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Drukt versie af" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Te gebruiken video-apparaat [standaard: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Opnamemethode (1-mmap (standaard) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Profiel laden" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview -waarschuwing:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "video wordt vastgelegd naar" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Geluid" #~ msgid " Show VU meter" #~ msgstr " VU-meter tonen" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Audio-effecten ----" #~ msgid "Save File" #~ msgstr "Bestand opslaan" #~ msgid "codec values" #~ msgstr "codecwaarden" #~ msgid "capturing photo to" #~ msgstr "foto wordt vastgelegd naar" #~ msgid "Cap. Video" #~ msgstr "Video opn." #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCkijker bedieningsknoppen" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan apparaat niet openen" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Zorg er a.u.b. voor, dat de camera is verbonden\n" #~ "en dat het juiste stuurprogramma is geïnstalleerd." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Bedieningsknoppen voor UVC Extensie" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "" #~ "Bedieningsknoppen voor extensie werden toegevoegd aan het UVC-" #~ "stuurprogramma" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Bedieningsknoppen voor UVC Extensie" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Er is een fout opgetreden tijdens het\n" #~ "toevoegen van bedieningsknoppen aan\n" #~ "het UVC-stuurprogramma.\n" #~ "Zorg ervoor dat u guvcview draait als root\n" #~ "(of met sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen geldige videostroom instellen voor guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Zorg ervoor dat het stuurprogramma van uw\n" #~ "apparaat voldoet aan v4l2 en dat het\n" #~ "correct is geïnstalleerd." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan niet opstarten met minimale\n" #~ "instellingen" #~ msgid "Please reconnect your camera." #~ msgstr "Sluit uw camera opnieuw aan a.u.b." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kon de capaciteiten van het\n" #~ "apparaat niet opvragen" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Zorg ervoor dat het stuurprogramma v4l2 ondersteunt." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Leesmethodefout" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Probeer in plaats daarvan a.u.b. mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen buffers toewijzen" #~ msgid "Please try restarting your system." #~ msgstr "Probeer a.u.b. of het helpt wanneer u uw systeem herstart." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview-fout:\n" #~ "\n" #~ "Kan geen videodraad maken" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Meld het a.u.b. aan http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Toont foutopsporingsinformatie" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Afsluiten na het toevoegen van bedieningsknoppen voor UVC-extensie (heeft " #~ "root/sudo nodig)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Maak geen videostroom (alleen fotobedieningsknoppen)" #~ msgid "Don't display a GUI" #~ msgstr "Toon geen grafische schil" #~ msgid "Configuration file" #~ msgstr "Configuratiebestand" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Hardwareversnelling (aan(1) | uit(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Beeldgrootte, standaard: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Tussenpoze tussen foto's maken, in seconden" #~ msgid "Number of Pictures to capture" #~ msgstr "Aantal te maken foto's" #~ msgid "Video File name (capture from start)" #~ msgstr "Naam van videobestand (opnemen vanaf begin)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video-opnametijd (in seconden)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Sluit guvcview af na sluiten van film" #~ msgid "Number of initial frames to skip" #~ msgstr "Aantal filmbeeldjes dat in het begin moet worden overgeslagen" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Toon FPS-waarde (aan(1) | uit (0))" #~ msgid "Load Profile at start" #~ msgstr "Profiel laden bij start" #~ msgid "- local options" #~ msgstr "- plaatselijke opties" #~ msgid "Cap. Image" #~ msgstr "Foto maken" #~ msgid "Not enough free space left on disk" #~ msgstr "Niet genoeg vrije ruimte over op schijf" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - ongecomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - ongecomp BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroskaformaat" #~ msgid "WEBM - format" #~ msgstr "WEBM - formaat" #~ msgid " Show" #~ msgstr " Tonen" #~ msgid "Quality:" #~ msgstr "Kwaliteit:" guvcview-2.0.2+debian/po/pl.po000066400000000000000000001001031256377215300161670ustar00rootroot00000000000000# Polish translation for guvcview # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:33+0000\n" "Last-Translator: Adam Czabara \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kontrolki użytkownika" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Jasność:" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Kontrast" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Barwa:" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Nasycenie" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Ostrość" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gamma" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Kompensacja oświetlenia tła" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Częstotliwość lini zasilania" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Barwa: Automatycznie" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Ostrość, Auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Tryb ręczny" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Tryb automatyczny" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Priorytet migwaki" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Priorytet przysłony" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Poziom czerni" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Automatyczny balans bieli" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balans bieli" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balans czerwieni" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balans niebieskiego" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Automatyczna ziarnistość" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Wzmocnienie" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Odbicie poziome" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Odbicie pionowe" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Wyśrodkowanie poziome" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Wyśrodkowanie pionowe" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Automatyczna kontrola kluczowania" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Usunięcie koloru" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efekty kolorów" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kontrola kamery" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Automatyczna ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Absolutny czas ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "dynamiczna ilośc klatek/s ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Względne Pan" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Przechylenie względne" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Reset Pan" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Reset nachylenia" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Absolutny Pan" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Ostrośc absolutna" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Ostrość względna" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Automatyczna ostrość" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Absolutny zoom" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Względny zoom" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom ciągły" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Prywatność" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Auto ekspozycja" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Auto priorytet ekspozycji" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Ekspozycja (absolutna)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Automatyczny balans bieli temperatury" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura balansu bieli" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Automatyczny komponent balansu bieli" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Komponent balansu bieli - niebieskiego" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Komponent balansu bieli - czerwonego" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Ostrość" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Ostrość (absolutna)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 msgid "Raw camera input" msgstr "" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Audio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Urządzenie wejścia:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Próbkowanie audio:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Urzadzenie domyślne" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanały:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtry wideo ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Echo" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr "" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr "" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr "" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr "" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Stop Video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Przechwicenie Wideo (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 msgid "_Cancel" msgstr "" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Urządzenie:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Przechwytywanie wideo Guvcview" #: ../guvcview/gui_gtk3.c:525 msgid "Guvcview" msgstr "" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Stop Auto (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Przechwycenie obrazu (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Kontrola obrazu" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Kontrolki użytkownika" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Kontrolki użytkownika" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Kontrolki użytkownika" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 msgid "Photo file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 msgid "Video file name" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "wartości kodeka audio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " enkoder fps: \n" " (0 - użycie wartości fps combobox)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bit rate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmaks: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "rozmiar dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "rozmiar pre dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "rozmiar gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max klatek B: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "wartości kodeka audio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Kontrola obrazu" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bit rate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Rozdzielczość:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Kontrola obrazu" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Klatki na sekundę:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max klatek B: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Reset Pan" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Lewy" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Prawy" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Dół" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Góra" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Zastosuj" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Klatki na sekundę:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Rozdzielczość:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtry wideo ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr "" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Odwrócenie" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negatyw" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr "" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 msgid "Print version" msgstr "" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 msgid "Set device name (def: /dev/video0)" msgstr "" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 msgid "Set capture method [read | mmap (def)]" msgstr "" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "Audio" #~ msgid " Sound" #~ msgstr " Dźwięk" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efekty audio ----" #~ msgid "Save File" #~ msgstr "Zapisz Plik" #~ msgid "codec values" #~ msgstr "wartości kodeków" #~ msgid "Cap. Video" #~ msgstr "Przechwicenie Wideo" #~ msgid "GUVCViewer Controls" #~ msgstr "Kontrolki GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można otworzyć urządzenia" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Proszę się upewnić, czy kamera jest podłączona\n" #~ "oraz czy jest zainstalowany odpowiedni sterownik." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Kontrolki rozszerzenia UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Kontrolki rozszerzenia zostały dodane do steronika UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Kontrolki rozszerzenia UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Wystąpił błąd podczas dodawania kontrolek\n" #~ "rozszerzenia sterownika UVC\n" #~ "Guvciew musi być uruchomiony w trybie root(lub sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "Nie można ustanowić prawidłowego strumienia wideo dla guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Upewnij się, że twoje urządzenie jest kompatybilne z v4l2\n" #~ "i jest poprawnie zainstalowane." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można uruchomić minimalnej konfiguracji" #~ msgid "Please reconnect your camera." #~ msgstr "Ponownie podłącz kamerę." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można pobrać listy kompatybilnych urządzeń" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Upewnij się, że urządzenie obsługuje v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Błąd metody odczytu" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Proszę spróbować mmap zamiast (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Błąd alokacji buforów" #~ msgid "Please try restarting your system." #~ msgstr "Proszę zrestartować system." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Błąd Guvcview:\n" #~ "\n" #~ "Nie można utworzyć wątku wideo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "Proszę zgłosić na http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Wyświetlanie informacji debugowania" #~ msgid "Cap. Image" #~ msgstr "Przechwycenie obrazu" #~ msgid " Show" #~ msgstr " Pokaz" #~ msgid "Quality:" #~ msgstr "Jakość:" guvcview-2.0.2+debian/po/pt.po000066400000000000000000001075331256377215300162150ustar00rootroot00000000000000# translation of pt_PT.po to Portuguese # translation of guvcview to Portuguese # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # # guvcview , 2008. msgid "" msgstr "" "Project-Id-Version: pt_PT\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:38+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "Visualizador de vídeo GTK UVC" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Um visualizador e capturador de de vídeo para o controlador linux uvc" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controlos de utilizador" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Cor" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação da iluminação" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequência da linha elétrica" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Cor automática" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem automática" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Nível do preto" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos automático" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Balancear brancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balancear vermelhos" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balancear azuis" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Inversão horizontal" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Inversão vertical" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Remoção de cores" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controlos de câmara" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição com fotogramas dinâmicos" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Rotação relativa" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação relativa" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Restaurar rotação" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Rotação absoluta" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Focagem absoluta" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Focagem relativa" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Focagem automática" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Ampliação absoluta" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Ampliação relativa" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Ampliação continua" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Esxposição com prioridade automática" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição absoluta" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanceamento de brancos automático" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Temperatura do balanceamento de brancos" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de brancos automática" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Componente azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Componente vermelho" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Focagem" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Focagem absoluta" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Desligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Ligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Intermitente" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Automático" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Rotação (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinação (relativa)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Restaurar rotação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Focagem (absoluta)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequência LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Desativar processamento vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits por pixel (Raw)" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - não comprimido (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Saída da câmara:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - com compressão" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG vídeo 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - Vídeo flash 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - vídeo wma 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - vídeo MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Áudio API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Dispositivo de som:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Frequência:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Automático" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canais:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - estéreo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtros de vídeo ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Eco" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Ruído" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WhaWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Patinho" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Parar Video (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Cap. Video (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Erro" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Parece que possui mais do que 1 dispositivo de vídeo.\n" "Quer tentar outro?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Dispositivo:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Captura de vídeo Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Parar Auto (I):" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cap. Imagem (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Controlos de imagem" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Controlos de utilizador" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Controlos de utilizador" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Controlos de utilizador" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Carregar Perfil" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Nome do ficheiro" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Nome do ficheiro" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "iniciar novo" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "reiniciar" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "novo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "quer iniciar um novo processo ou reiniciar?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "valores do codificador áudio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " fps do codificador: \n" " (0 - utilizar valor da caixa de combinação)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " pts monótonos" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "taxa de dados " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "tamanho dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "tamanho pré-dia: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "última contagem: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "tamanho gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "método me: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "decisão mb: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max B frames: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "processos: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "valores do codificador áudio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Controlos de imagem" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "taxa de dados " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolução:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Controlos de imagem" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Taxa de imagens:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Gravar Perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - vídeo avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max B frames: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Restaurar rotação" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Definições" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Pré-definição de Hardware" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Botão da Câmera" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Capturar Imagem" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Capturar Video" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Ficheiro" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Increm. nome do ficheiro" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Codec de Video" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Propr. Codec de Video" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Codec de Audio" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Propr. Codec de Audio" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Esquerda" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Direita" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Baixo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Cima" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bits" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bits" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Foco automático (continuo)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Focar" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Aplicar" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Taxa de imagens:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolução:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Saída da câmara:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtros de vídeo ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Espelho" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invertido" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativo" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Cinza" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Pedaços" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Partículas" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Mostra a versão" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Dispositivo de vídeo [predefinição: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Método de captura (1-mmap (predefinido) 2 -leitura)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Carregar Perfil" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Alerta do Guvcview:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC - (faac)" #~ msgid "Audio" #~ msgstr "Áudio" #~ msgid " Sound" #~ msgstr " Som" #~ msgid " Show VU meter" #~ msgstr " Mostrar medidor VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efeitos áudio ----" #~ msgid "Save File" #~ msgstr "Gravar ficheiro" #~ msgid "codec values" #~ msgstr "valores do codificador" #~ msgid "Cap. Video" #~ msgstr "Capturar vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controlos do Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível ligar à câmara" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Verifique a ligação à câmara e certifique-se\n" #~ "que tem o controlador instalado" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Controlos dinâmicos UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Os controlos dinâmicos foram adicionados ao controlador UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Controlos dinâmicos UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocorreu um erro ao adicionar os controlos\n" #~ "dinâmicos ao controlador UVC\n" #~ "Verifique se iniciou guvcview como root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível definir um formato de vídeo válido" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Certifique-se que a câmara é compatível com\n" #~ "o v4l2 e que está instalada corretamente" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível iniciar a configuração mínima" #~ msgid "Please reconnect your camera." #~ msgstr "Deve remover e ligar novamente a câmara" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível verificar as propriedades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Certifique-se que o dispositivo tem suporte ao v4l2" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Erro no método de leitura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Tente com mmap (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível alocar os \"buffers\"" #~ msgid "Please try restarting your system." #~ msgstr "Por favor reinicie o sistema" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro Guvcview:\n" #~ "\n" #~ "Não foi possível criar processo de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Reporte este erro em http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Mostrar informações de depuração" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Sair após adicionar os controlos dinâmicos ao UVC (requer root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Não emitir vídeo (só controlo de imagem)" #~ msgid "Don't display a GUI" #~ msgstr "Não mostrar interface" #~ msgid "Configuration file" #~ msgstr "Ficheiro de configuração" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aceleração de vídeo (ativa (1) | inativa (0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Formatos pixel (mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Resolução (predefinido: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo entre capturas (em segundos)" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Nome do ficheiro (capturar ao iniciar)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tempo de captura vídeo (em segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Sair do Guvcview ao fechar o vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Número de fotogramas iniciais a ignorar" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Mostrar valor FPS (ativo (1) | inativo (0))" #~ msgid "Load Profile at start" #~ msgstr "Carregar perfil ao iniciar" #~ msgid "- local options" #~ msgstr "- opções locais" #~ msgid "Cap. Image" #~ msgstr "Capturar imagem" #~ msgid "Not enough free space left on disk" #~ msgstr "O espaço livre do disco não é suficiente" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - YUV sem compressão" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - BMP sem compressão" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Vídeo mkv" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Qualidade:" guvcview-2.0.2+debian/po/pt_BR.po000066400000000000000000001073201256377215300165720ustar00rootroot00000000000000# translation of pt_BR.po to Portuguese # translation of guvcview to Portuguese # Copyright (C) 2008 Paulo Assis # This file is distributed under the same license as the guvcview package. # guvcview , 2008. # Djavan Fagundes , 2011. msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-08-25 02:20+0000\n" "Last-Translator: Celio Alves \n" "Language-Team: Brazilian Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Project-Style: default\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "Visualizador de vídeo GTK UVC" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Um visualizador de vídeos e captura para o driver linux uvc" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Controles do usuário" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Brilho" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Contraste" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Matiz" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Saturação" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Nitidez" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Gama" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Compensação de Luz" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Frequência da linha de transmissão" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Matiz, Automático" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Focagem, auto" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Modo manual" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Modo automático" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Modo prioridade do obturador" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Modo prioridade da abertura" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Níveis de preto" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Balanço de brancos" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Fazer balanço de brancos" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Balanço do vermelho" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Balanço do azul" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Exposição" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Ganho, automático" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Ganho" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Virar horizontalmente" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Virar verticalmente" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Eixo horizontal" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Eixo vertical" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC de Chroma" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Removedor de cores" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Efeitos de cor" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Controles de câmera" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Exposição automática" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Tempo de exposição, absoluto" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Exposição, taxa de quadros dinâmicos" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Deslocamento, relativo" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Inclinação, relativo" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Deslocamento, restaurar" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Inclinação, restaurar" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Deslocamento, absoluto" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Foco, absoluto" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Foco, relativo" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Foco, automático" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Zoom, absoluto" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Zoom, relativo" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Zoom, contínuo" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Privacidade" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Exposição, auto" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Exposição, prioridade auto" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Exposição (absoluta)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Balanço de branco, auto" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Balanço de branco temperatura" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Componente de cor, auto" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Balanço de branco componente azul" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Balando de branco componente vermelho" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Foco" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Desligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Ligado" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Intermitente" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Auto" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Deslocamento (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Inclinação (relativo)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Restaurar deslocamento" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Restaurar inclinação" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Foco (absoluto)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Modo LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Frequência LED1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Parar processamento de vídeo" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Bits brutos por pixel" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Saída de câmera:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - com compressão" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "Vídeo MPEG 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - vídeo flash 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPEG vídeo 2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "API de áudio:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Dispositivo de entrada:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Taxa de amostragem:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Padrão" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Canais:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Filtros de vídeo ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Eco" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Ruído" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Patinho" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Parar vídeo (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Cap. vídeo (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Erro" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Foram detectados múltiplos dispositivos de vídeo.\n" "Quer tentar outro?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Dispositivo:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Capturador de vídeo Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Parar auto (I):" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Cap. imagem (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Controles de imagem" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Controles do usuário" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Controles do usuário" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Controles do usuário" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Carregar Perfil" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Formato do arquivo:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Nome do arquivo de imagem" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Imagem Raw (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Nome do arquivo de imagem" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "iniciar novo" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "reiniciar" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "novo" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "cancelar" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "lançar novo processo ou recomeçar?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "valores do codec de áudio" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " codificador fps: \n" " (0 - use o valor fps da caixa de marcação)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " pts monotonico" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "taxa de bits: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "qdiff max: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "tamanho do dia: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "tamanho do diâ pré: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "última contagem preditor: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "tamanho do gop: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "método me: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "decisão mb: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "Max quadros B: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "num threads: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "valores do codec de áudio" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Controles de imagem" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "taxa de bits: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Resolução:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Controles de imagem" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Taxa de quadros:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Salvar perfil" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Formato do arquivo:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - formato avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Max quadros B: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Restaurar deslocamento" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Definições" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Pré-definição de Hardware" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Botão da Câmera" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Capturar Imagem" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Capturar Video" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Foto" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Ficheiro" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Increm. nome do ficheiro" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Video" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Codec de Video" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Propr. Codec de Video" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Codec de Audio" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Propr. Codec de Audio" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Esquerda" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Direita" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Baixo" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Cima" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Focagem automática (contínua)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Definir foco" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Aplicar" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Taxa de quadros:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Resolução:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Saída de câmera:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Filtros de vídeo ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Espelho" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Invertido" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negativo" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Cinza" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Pedaços" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Partículas" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Exibe a versão" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Dispositivo de vídeo para usar [padrão: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Método de captura (1-mmap (padrão) 2-leitura)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Carregar Perfil" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Alerta Guvcview:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "Audio" #~ msgstr "Áudio" #~ msgid " Sound" #~ msgstr " Som" #~ msgid " Show VU meter" #~ msgstr " Mostrar Volume" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Efeitos de áudio ----" #~ msgid "Save File" #~ msgstr "Salvar arquivo" #~ msgid "codec values" #~ msgstr "valores do codec" #~ msgid "Cap. Video" #~ msgstr "Cap. vídeo" #~ msgid "GUVCViewer Controls" #~ msgstr "Controles do GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível conectar a câmera" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Por favor, verifique a conexão\n" #~ "e se o driver correto está instalado." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Extensão de controles UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "As extensões de controles foram adicionadas ao driver UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Extensões de controles UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Ocorreu um erro ao adicionar as extensões de\n" #~ "controles ao driver UVC\n" #~ "Verifique se iniciou o guvcview como root (ou sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível definir um fluxo de vídeo para o guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Verifique se o driver é compatível com v4l2\n" #~ "e se este se está instalado corretamente." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview erro:\n" #~ "\n" #~ "Não foi possível iniciar com as definições mínimas" #~ msgid "Please reconnect your camera." #~ msgstr "Por favor, reconecte sua câmera." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview erro:\n" #~ "\n" #~ "Não foi possível consultar as propriedades do dispositivo" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Por favor, verifique se o driver oferece suporte v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Erro do método de leitura" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Por favor, tente o mmap no lugar (--capture_method=1)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Erro do Guvcview:\n" #~ "\n" #~ "Não foi possível alocar Buffers" #~ msgid "Please try restarting your system." #~ msgstr "Por favor, tente reiniciar o sistema." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Erro de Guvcview:\n" #~ "\n" #~ "Não foi possível criar o thread de vídeo" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Por favor, reporte em http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Displays debug information" #~ msgstr "Mostra informação de depuração" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Sair após adicionar extensão de controles UVC (precisa de root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Desabilitar o fluxo de vídeo (apenas controles de imagens)" #~ msgid "Don't display a GUI" #~ msgstr "Não mostrar GUI" #~ msgid "Configuration file" #~ msgstr "Arquivo de configuração" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Aceleração de hardware (habilitado(1) | desabilitado(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Tamanho do quadro, padrão: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Intervalo de captura de imagens em segundos" #~ msgid "Number of Pictures to capture" #~ msgstr "Numero de imagens a capturar" #~ msgid "Video File name (capture from start)" #~ msgstr "Arquivo de vídeo (captura ao iniciar)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Tempo de captura de vídeo (em segundos)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Termina o guvcview depois de fechar o vídeo" #~ msgid "Number of initial frames to skip" #~ msgstr "Numero inicial de quadros a ignorar" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Apresentar o valor FPS (habilitado(1) | desabilitado(0))" #~ msgid "Load Profile at start" #~ msgstr "Carrega perfil ao iniciar" #~ msgid "- local options" #~ msgstr "- opções locais" #~ msgid "Cap. Image" #~ msgstr "Cap. imagem" #~ msgid "Not enough free space left on disk" #~ msgstr "Sem espaço livre suficiente no disco" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - sem compressão YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - Sem compressão BMP" #~ msgid " Show" #~ msgstr " Mostrar" #~ msgid "Quality:" #~ msgstr "Qualidade:" guvcview-2.0.2+debian/po/quot.sed000066400000000000000000000002311256377215300167020ustar00rootroot00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g guvcview-2.0.2+debian/po/remove-potcdate.sin000066400000000000000000000006601256377215300210340ustar00rootroot00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } guvcview-2.0.2+debian/po/ru.po000066400000000000000000001177001256377215300162150ustar00rootroot00000000000000# Copyright (C) 2009 Paulo Assis # This file is distributed under the same license as the guvcview package. # # Roustam Ghizdatov , 2009. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-06 13:32+0000\n" "Last-Translator: Николай Авдеев (NickKolok, Nikolay Avdeev) \n" "Language-Team: Russian <>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC видео обозреватель" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Программа просмотра и записи видео для драйвера Linux UVC" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Настройки пользователя" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Яркость" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контрастность" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Оттенок" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Насыщенность" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Резкость" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гамма" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Компенсация ярких участков" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Частота в электросети" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Оттенок, Автоматически" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Фокус, авто" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручной режим" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Авторежим" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Режим приоритета затвора" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Режим приоритета диафрагмы" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Уровень чёрного" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Баланс белого, Автоматически" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Сбалансировать белый цвет" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Баланс красного" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Баланс синего" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Экспозиция" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Усиление, автоматически" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Усиление" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Отразить по горизонтали" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Отразить по вертикали" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Горизонтальный центр" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Вертикальный центр" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Обесцвечиватель" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Цветовые эффекты" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Настройки камеры" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Авто выдержка" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Время выдержки, Абсолютное" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Выдержка, Динамичная частота кадров" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Фокус, Совершенный" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Фокус, Относительный" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Фокус, Автоматический" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Увеличение, Совершенное" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Увеличение, Относительное" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Увеличение, Постоянное" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Конфиденциальность" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Экспозиция, авто" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Режим частоты кадров" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Выдержка (совершенная)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Температура баланса белого, авто" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура баланса белого" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Компонент баланса белого, авто" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Синий компонент баланса белого" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Красный компонент баланса белого" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокусирование" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Фокусирование (Абсолютное)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Откл." #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Вкл." #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Мерцание" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Авто" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Гор. поворот (относит.)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Верт. поворот (относит.)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Гор. возврат" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Верт. возврат" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Фокус (абсолютный)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Режим светодиода1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Частота светодиода1" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Отключение обработки видео" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Кол-во бит на пиксел" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - без сжатия (16-разрядный)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Вывод камеры:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - сжатый" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-видео 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - флэш-видео 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - видео Windows Media 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - формат MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Аудио-API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Устройство ввода:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Частота дискретизации:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "по умолчанию" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Каналов:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - моно" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - стерео" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Видео-фильтры ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Эхо" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Реверберация" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Фуз" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " Квакушка" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Утёнок" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Остановить видео (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Захв. видео (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Ошибка" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "Отмена" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "У вас установлен дополнительный видео прибор.\n" "Хотите попробовать другой?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Устройство:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Заxват видео через Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Прекратить автоматический захват (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Захв. Изображение (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Регулировка изображения" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Настройки пользователя" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Настройки пользователя" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Настройки пользователя" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Загрузить профиль" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Формат файла:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Имя файла изображения" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Необработанное изображение Raw Image (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Имя файла изображения" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "Запуск нового" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "перезагрузить" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "Новый" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "Отмена" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "Запустить новый процесс или перезапустить?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "значения звукового кодека" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " кодек кадров/с.: \n" " (0 - использовать значение списка)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "Битрейт: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "макс. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia-size: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre-dia-size: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre-me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre-cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub-cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "last-predictor-count: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop-size: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me-method: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb-decision: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "значения звукового кодека" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "Формат сэмпла " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Регулировка изображения" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "Битрейт: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Разрешение:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Регулировка изображения" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Частота кадров:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Сохранить профиль" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Формат файла:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - формат avi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "Частота кадров:" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Гор. возврат" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Настройки" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Настройки оборудования по умолчанию" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Кнопка камеры" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Захватить изображение" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Захватить видео" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Фото" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Файл" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Увеличить имя файла" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Видео" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Видеокодек" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Свойства видеокодека" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Звуковой кодек" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Свойства звукового кодека" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Влево" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Вправо" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Вниз" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Вверх" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 бит" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 бит" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Автофокусировка (непрерывная)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Установка фокуса" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Применить" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Частота кадров:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Разрешение:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Вывод камеры:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Видео-фильтры ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Гор. отражение" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Верт. отражение" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Негатив" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Чёрно-белое" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Мозаика" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr "" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Показывает версию" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Используемое видео-устройство (по умолчанию /dev/video0)" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Метод захвата (1 - mmap (по умолчанию) 2-читать)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Загрузить профиль" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview предупреждение:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "захват видео в" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Звук" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid " Show VU meter" #~ msgstr " Отображать значение VU" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Аудио-эффекты ----" #~ msgid "Save File" #~ msgstr "Сохранить файл" #~ msgid "codec values" #~ msgstr "Параметры кодека" #~ msgid "capturing photo to" #~ msgstr "захват фото в" #~ msgid "Cap. Video" #~ msgstr "Захв. видео" #~ msgid "GUVCViewer Controls" #~ msgstr "Панель управления программы GUVCViewer" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось открыть устройство" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Пожалуйста убедитесь в том, что камера подключена\n" #~ "и драйвер установлен корректно." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "Управление UVC расширениями" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Управления расширениями был длбавлен к драйверу UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Управление UVC расширениями" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Произошла ошибка в добавление\n" #~ "управлений к расширению UVC драйвера.\n" #~ "Убедитесь, что вы запустили guvcview как root (или sudo)" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Правильный видео поток не может быть установлен для guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Убедитесь что драйвер совместим с v4l2\n" #~ "и правильно установлен" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удался запуск с минимальной начальной установкой" #~ msgid "Please reconnect your camera." #~ msgstr "Пожалуйста, переподключите камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "Не могу получить свойства устройства" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Убедитесь в том, что драйвер устройства поддерживает v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Ошибка метода чтения" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Попробуйте лучше mmap (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось выделить место для буферов" #~ msgid "Please try restarting your system." #~ msgstr "Следует попробовать перезапустить систему." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Ошибка Guvcview:\n" #~ "\n" #~ "Не удалось создать поток команд для видео" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Следует сообщить об этом сюда: http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Portable Network Graphics (Png)" #~ msgid "Displays debug information" #~ msgstr "Показывает информацию для отладки" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Выход после добавления расширенных элементов управления UVC (требует root/" #~ "sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "" #~ "Не работать с потоковым видео (только элементы управления изображением)" #~ msgid "Don't display a GUI" #~ msgstr "Не отображать графический интерфейс" #~ msgid "Configuration file" #~ msgstr "Конфигурационный файл" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Аппаратное ускорение (вкл.(1) | выкл.(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Формат пикселей(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|" #~ "nv61|y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Размер кадра (по умолчанию 640х480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Интервал между снимками (сек)" #~ msgid "Number of Pictures to capture" #~ msgstr "Количество снимков" #~ msgid "Video File name (capture from start)" #~ msgstr "Имя видео-файла (запись сразу после запуска)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Продолжительность видео-записи (сек)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Завершает работу guvcview после закрытия видео" #~ msgid "Number of initial frames to skip" #~ msgstr "Количество начальных кадров для пропуска" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Отображение частоты кадров (вкл.(1) | выкл.(0))" #~ msgid "Load Profile at start" #~ msgstr "Загрузка профиля при запуске" #~ msgid "- local options" #~ msgstr "- локальные параметры" #~ msgid "Cap. Image" #~ msgstr "Сделать снимок" #~ msgid "Not enough free space left on disk" #~ msgstr "Недостаточно свободного места на диске" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - несжатый YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - несжатый BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - формат Matroska" #~ msgid "WEBM - format" #~ msgstr "Формат WEBM" #~ msgid " Show" #~ msgstr " Показать" #~ msgid "Quality:" #~ msgstr "Качество:" guvcview-2.0.2+debian/po/si.po000066400000000000000000001304261256377215300162020ustar00rootroot00000000000000# Sinhalese translation for guvcview # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-06-03 09:59+0000\n" "Last-Translator: sajith \n" "Language-Team: Sinhalese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC වීඩියෝ දකින්නා" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "ලිනක්ස් uvc ඩ්‍රයිවරය සඳහා වීඩියෝ පෙන්වන්නා සහ ග්‍රහණය කරන්නා" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "පරිශ්‍රීලක පාලකයන්" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "දීප්තිය" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "දීප්ති වෙනස" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "පැහැය" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "පරිපූර්ණබව" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "තියුණු බව" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "ගැමා" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "පසු ආලෝකන හානිපූරණය" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "බල සැපයුම් සංඛ්‍යාතය" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "පැහැය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "අත්පොත් ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "ස්වයංක්‍රීය ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "සංවෘත ප්‍රමුඛතා ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "විවෘත ප්‍රමුඛතා ක්‍රමය" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "කළු පාට මට්ටම" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "සුදු පාට සමබරතාවය, ස්වයංක්‍රීය" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "සුදු සමබර කරන්න" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "රතු සමබරතාවය" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "නිල් සමබරතාවය" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "අනාවර්ණය" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "ලබාගන්න, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "ලබාගන්න" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "තිරස් හැරවුම" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "සිරස් හැරවුම" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "තිරස් මධ්‍යය" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "සිරස් මධ්‍යය" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "AGC වර්ණතීව‍්‍රතාව" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "වර්ණ නැතිකරන්නා" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "වර්ණ සැරසිලි" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "කැමරා පාලකයන්" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "ස්වයංක්‍රීය අනාවරණය" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "නිරපේක්ෂ කාලය අනාවරණ කරන්න" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "වෙනස්වන රාමු ශ්‍රීඝ‍්‍රතාව අනාවරණ කරන්න" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "තිරස් ලෙස කරකවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "සිරස් ලෙස කරකවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "තිරස් ලෙස කරකැවීම නැවත අරඹන්න" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "සිරස් ලෙස කරකැවීම නැවත අරඹන්න" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "තිරස් ලෙස කරකවන්න, නිරපේක්ෂ" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "නිරපේක්ෂව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "සාපේක්ෂව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, නිරපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, සාපේක්ෂව" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "සමීප දුරස්ථ රූප ගැනීම සඳහා කැමරාව හසුරුවන්න, අඛණ්ඩව" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "පුද්ගලිකත්වය" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "ස්වයංක්‍රීයව අනාවරණය කරන්න" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "ස්වයංක්‍රීය ප්‍රමුඛතාව අනාවරණය කරන්න" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "අනාවරණය කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "සුදු පැහැය සැසඳීමේ උෂ්ණත්වය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "සුදු පැහැය සැසඳීමේ උෂ්ණත්වය" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "සුදු පැහැය සැසඳීමේ උපාංගය, ස්වයංක්‍රීයව" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "සුදු පැහැය සැසඳීමේ නිල් පැහැයේ උපාංගය" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "සුදු පැහැය සැසඳීමේ රතු පැහැයේ උපාංගය" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "නාභාගත කරන්න" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "නාභාගත කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "අක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "සක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "ක්ෂණික ආලෝකය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "ස්වයංක්‍රීය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "තිරස් ලෙස කරකවන්න (සාපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "සිරස් ලෙස කරකවන්න (සාපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "තිරස් ලෙස කරකැවීම නැවත සකසන්න" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "සිරස් ලෙස කරකැවීම නැවත සකසන්න" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "නාභිගත කරන්න (නිරපේක්ෂව)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 ක්‍රමය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 සංඛ්‍යාතය" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "වීඩියෝව සැකසීමට නොහැක" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "පික්සල් එකක් සඳහා දළ බිට් ප්‍රමාණය" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "MJPG - සම්පීඩනය නොකරන ලද" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "කැමරා නිමැවුම:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - සම්පීඩන කරන ලද" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG වීඩියෝ 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - ෆ්ලෑෂ් වීඩියෝ 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. වීඩියෝ 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 ආකෘතිය" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "ශ්‍රව්‍ය API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "යෙදවුම් උපකරණය:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "ආදර්ශ අනුපාතය:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Dev. Default" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "නාලිකාවන්:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - එකක්" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - ත්‍රිමාන" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- වීඩියෝ පෙරනයන්----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " අනුකරණය කරන්න" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Fuzz" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "වීඩියෝව නවත්වන්න (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "වීඩියෝව ග්‍රහණය කරගන්න (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "දෝෂය" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "අවලංගු කරන්න" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "ඔබ වීඩියෝ උපකරණ එකකට වඩා වැඩියෙන් සවිකර ඇත.\n" "ඔබට වෙනත් එකක් අත්හදා බැලීමට අවශ්‍යද?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "උපකරණය:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview වීඩියෝ ග්‍රහණය කරගැනීම" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "ස්වයංක්‍රීයව නවත්වන්න (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "රූපය ග්‍රහණය කරගන්න (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "රූප පාලක" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "පරිශ්‍රීලක පාලකයන්" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "පරිශ්‍රීලක පාලකයන්" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "පරිශ්‍රීලක පාලකයන්" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "ආකෘතිය ප්‍රවේශනය කරන්න" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "ගොනු ආකෘතිය:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "රූපයේ ගොනු නාමය" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "දළ රූපය (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "රූපයේ ගොනු නාමය" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "අලුතින් අරඹන්න" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "නැවත අරඹන්න" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "අලුත් එකක්" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "අවලංගු කරන්න" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "අලුත් ක්‍රියාවලියක් දියත් කරන්න හෝ නැවත අරඹන්නද?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "ශ්‍රව්‍ය කොඩෙක් අගයන්" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " fps සංකේතකය: \n" " (0 - fps ලැයිස්තුවක් සහිත රාමුවේ අගය පාවිච්චි කරන්න)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " ඒකවිධ pts" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "බිට් අනුපාතය: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "උපරිම qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "අවසාන අනාවැකි ගණන: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop size: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me method: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb decision: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "උපරිම B රාමු: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "num සම්බන්ධයන්: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "ශ්‍රව්‍ය කොඩෙක් අගයන්" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "ආදර්ශ ආකෘතිය: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "රූප පාලක" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "බිට් අනුපාතය: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "තීරණය:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "රූප පාලක" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "රාමු ශීඝ්‍රතාවය:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "ආකෘතිය සුරකින්න" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "ගොනු ආකෘතිය:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - avi ආකෘතිය" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "උපරිම B රාමු: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "තිරස් ලෙස කරකැවීම නැවත සකසන්න" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "සැකසුම්" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "ස්වභාවික දෘඩාංග" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "කැමරා බොත්තම" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "රූපය ග්‍රහණය කරගන්න" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "වීඩියෝව ග්‍රහණය කරගන්න" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "ඡායාරූපය" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "ගොනුව" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "වර්ධක ගොනු නාමය" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "වීඩියෝ" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "වීඩියෝ කොඩෙක්" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "වීඩියෝ කොඩෙක් ගුණාංග" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "ශ්‍රව්‍ය කොඩෙක්" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "ශ්‍රව්‍ය කොඩෙක් ගුණාංග" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "වම" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "දකුණ" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "පහලට" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "ඉහළට" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "බිට් 8" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "බිට් 12" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "ස්වයංක්‍රීයව නාභිගත කරන්න (අඛණ්ඩව)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "නාභිගත වීම සකස් කරන්න" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "යොදන්න" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "රාමු ශීඝ්‍රතාවය:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "තීරණය:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "කැමරා නිමැවුම:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- වීඩියෝ පෙරනයන්----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " කැඩපත" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " යටිකුරු කරන්න" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " ප්‍රතික්ෂේප කරන්න" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " එකක්" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " කොටස්" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " ඉතා කුඩා කොටස්" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "පිටපත මුද්‍රණය කරන්න" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "පාවිච්චිය සඳහා වීඩියෝ උපකරණය [ස්වභාවික: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "ග්‍රහණය කරගැනීමේ ක්‍රමය (1-mmap (ස්වභාවික) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "ආකෘතිය ප්‍රවේශනය කරන්න" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview අනතුරු ඇඟවීම:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "වීඩියෝව ග්‍රහණය කිරීම" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "ශ්‍රව්‍ය" #~ msgid " Sound" #~ msgstr " නාදය" #~ msgid " Show VU meter" #~ msgstr " VU මීටරය පෙන්වන්න" #~ msgid "---- Audio Effects ----" #~ msgstr "---- ශ්‍රවණ සැරසිලි ----" #~ msgid "Save File" #~ msgstr "ගොනුව සුරකින්න" #~ msgid "codec values" #~ msgstr "කොඩෙක් අගයන්" #~ msgid "capturing photo to" #~ msgstr "ඡායාරූපය ග්‍රහණය කිරීම" #~ msgid "Cap. Video" #~ msgstr "වීඩියෝව ග්‍රහණය කරගන්න (V)" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer පාලකයන්" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "උපකරණය විවෘත කිරීමට නොහැක" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "කරැණාකර කැමරාව සම්බන්ධ කර ඇති බව සහ \n" #~ "නිවැරදි ඩ්‍රයිවරය පිහිටුවා ඇති බවට සහතික කරගන්න." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC ව්‍යාප්ති පාලක" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "UVC ඩ්‍රයිවරයට ව්‍යාප්ති පාලක එක් කර ඇත" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "UVC ව්‍යාප්ති පාලක" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "UVC ඩ්‍රයිවරයට පාලක ව්‍යාප්තිය එකතු කරන\n" #~ "අතරතුර දෝෂයක් හට ගැනිණ\n" #~ "ඔබ guvcview root ලෙස (හෝ sudo) වැඩකරන බව සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "guvcview සඳහා වලංගු වීඩියෝවක් පිහිටුවීමට නොහැක" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "ඔබගේ උපකරණ ඩ්‍රයිවරය v4l2ට අනුකූල වන බව \n" #~ "සහ එය සුදුසු ලෙස පිහිටුවා ඇති බවට සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "අවම සැලැස්ම සමඟ ඇරඹීමට නොහැක" #~ msgid "Please reconnect your camera." #~ msgstr "කරුණාකර ඔබේ කැමරාව නැවත සම්බන්ධ කරන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "උපකරණයන්ගේ හැකියාවන් විමසුමට නොහැකි විය" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "උපකරණ ඩ්‍රයිවරය v4l2ට අනුග්‍රහය ලබා දෙන බව සහතික කරගන්න." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "කියවීම් ක්‍රමයේ දෝෂයකි" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "කරුණාකර mmap වෙනුවට අත්හදා බලන්න (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "බෆර්ස් වෙන්කිරීමට නොහැක" #~ msgid "Please try restarting your system." #~ msgstr "කරුණාකර ඔබේ පද්ධතිය නැවත ඇරඹීමට උත්සාහ දරන්න" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview දෝෂය:\n" #~ "\n" #~ "වීඩියෝ පටයක් නිර්මාණය කිරීමට නොහැක" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "කරුණාකර එය මෙතනට වාර්තා කරන්න http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "අතේ ගෙන යාහැකි ජාලික චිත්‍ර (Png)" #~ msgid "Displays debug information" #~ msgstr "දෝෂ මඟහැරීමේ තොරතුරු පෙන්වන්න" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "UVC ව්‍යාප්ති පාලක එකතු කිරීමෙන් පසුව පිටවෙන්න (root/sudo අවශ්‍යයි)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "ගලායන වීඩියෝවක් අවශ්‍ය නැත (රූපය පාලක පමණි)" #~ msgid "Don't display a GUI" #~ msgstr "GUI එකක් ප්‍රදර්ශනය කරන්න එපා" #~ msgid "Configuration file" #~ msgstr "ආකෘති ගොනුව" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "දෘඩාංග අධිවේගීකරණය (හැකියාව(1) | නොහැකියාව(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Pixel ආකෘතිය(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "රාමුවක ප්‍රමාණය, ස්වභාවික: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "රූපය ග්‍රහණය කරගැනීම අතර කාලය තත්පර වලින්" #~ msgid "Number of Pictures to capture" #~ msgstr "ග්‍රහණය කරගැනීමට ඇති පින්තූර ගණන" #~ msgid "Video File name (capture from start)" #~ msgstr "වීඩියෝවේ ගොනු නාමය (ග්‍රහණය කරගැනීම ආරම්භයේ සිට)" #~ msgid "Video capture time (in seconds)" #~ msgstr "වීඩියෝවේ ග්‍රහණය කරගැනීමේ කාලය තත්පර වලින්" #~ msgid "Exits guvcview after closing video" #~ msgstr "වීඩියෝව වැසීමෙන් පසුව guvcview එකෙන් පිටවෙන්න" #~ msgid "Number of initial frames to skip" #~ msgstr "නොසලකා හැරීමට ඇති ආරම්භක රාමු ගණන" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS අගය පෙන්වන්න (හැකියාව(1) | නොහැකියාව(0))" #~ msgid "Load Profile at start" #~ msgstr "ආරම්භයේදී ආකෘතිය ප්‍රවේශනය කරන්න" #~ msgid "- local options" #~ msgstr "- ස්ථානීය විකල්ප" #~ msgid "Cap. Image" #~ msgstr "රූපය ග්‍රහණය කරගන්න" #~ msgid "Not enough free space left on disk" #~ msgstr "සෑ‍හෙන තරම් හිස් අවකාශයක් තැටිය මත ඉතිරි වී නොමැත" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska ආකෘතිය" #~ msgid "WEBM - format" #~ msgstr "WEBM - ආකෘතිය" #~ msgid " Show" #~ msgstr " පෙන්වන්න" #~ msgid "Quality:" #~ msgstr "ගුණාත්මකබව:" guvcview-2.0.2+debian/po/sr.po000066400000000000000000001204661256377215300162160ustar00rootroot00000000000000# Serbian translation for guvcview # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2011. # Мирослав Николић , 2011—2013. msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-03-09 13:12+0000\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "Камерица" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "ГТК УВЦ видео приказивач" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Приказивач и снимач видеа за линуксов увц управљачки програм" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Контроле корисника" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Осветљеност" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контраст" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Нијанса" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Засићеност" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Оштрина" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гама" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Поправка светла позадине" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Учесталост освежавања" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Нијанса, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Фокус, ауто" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручно" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Аутоматски" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Приоритет затварача" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Приоритет бленде" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Ниво црне" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Равнотежа белог, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Уравнотежавање белог" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Равнотежа црвеног" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Равнотежа плавог" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Излагање" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Појачање, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Појачање" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Водоравно превртање" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Усправно превртање" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Водоравно центрирање" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Усправно центрирање" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "АГЦ хроминансе" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Укидач боје" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Ефекти боје" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Контроле камере" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Аутоматска експозиција" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Време излагања, апсолутно" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Излагање, динамички проток кадра" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Праћење, релативно" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Нагибање, релативно" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Праћење, поновно" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Нагибање, поновно" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Праћење, апсолутно" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Фокус, апсолутни" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Фокус, релативни" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Фокус, аутоматски" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Зум, апсолутни" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Зум, релативни" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Зум, непрекидни" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Приватност" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Излагање, аутоматско" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Излагање, приоритет аутоматског" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Излагање (апсолутно)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Температура равнотеже белог, ауто" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура равнотеже белог" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Састојак равнотеже белог, ауто" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Плави састојак равнотеже белог" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Црвени састојак равнотеже белог" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокус" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Фокус (апсолутни)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Искљ." #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Укљ." #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Треперење" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Самостално" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Праћење (релативно)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Нагибање (релативно)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Поновно праћење" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Поновно нагибање" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Фокус (апсолутни)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "ЛЕД1 режим" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "ЛЕД1 учесталост" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Онемогући обрађивање видеа" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Сирових бита по тачци" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "ПЦМ — несажето (16 бита)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Ворбис" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Излаз камере:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "МЈПГ — сажети" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "МПЕГ видео 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "ФЛВ1 — флеш видео 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "ВМВ1 — виндоуз медија видео 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "МПГ2 — МПГ2 формат" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "МС МП4 В3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "МПЕГ4-АСП" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "МПЕГ4-АВЦ (Х264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "ВП8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Теора (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Аудио АПИ:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "ПОРТАУДИО" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "ПУЛСЕАУДИО" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Улазни уређај:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Проток узорка:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Основни са уређаја" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Број канала:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 — моно" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 — стерео" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "———— Видео филтери ————" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Ехо" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Одјек" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Маљ" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " ВауВау" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Паче" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Заустави видео (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Сними видео (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Грешка" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "откажи" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Имате неколико видео уређаја инсталирана.\n" "Желите ли да пробате неки други ?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Уређај:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Камерица — видео снимање" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "Камерица" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Заустави аутоматик (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Сними слику (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Контроле слике" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Контроле корисника" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Контроле корисника" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Контроле корисника" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Учитај профил" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Запис датотеке:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Назив датотеке слике" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Сирова слика (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Јпег (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Назив датотеке слике" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "покрени нови" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "поново покрени" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "нови" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "откажи" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "да покренем нови процес или да се поново покренем?.\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "вредност кодека звука" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " ф/с енкодера: \n" " (0 — користите вредност ф/с поља за бирање)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " једнообразне тачке" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "проток бита: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. q разл: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "диа величина: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "пре диа величина: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "пре ме: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "пре цмп: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "цмп: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "под цмп: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "последњи број предсказивача: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "гоп величина: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "q-сажимање: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "q-замућење: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "под-q: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "ме начин: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "мб одлука: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "највише Б оквира: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "бр. нити: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "вредност кодека звука" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "запис узорка: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Контроле слике" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "проток бита: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Резолуција:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 #, fuzzy msgid "Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Контроле слике" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Проток кадра:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Сачувај профил" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Запис датотеке:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "АВИ — ави формат" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "највише Б оквира: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Поновно праћење" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Подешавања" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Основно са уређаја" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Дугме фото-апарата" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Сними слику" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Сними видео" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Фотографија" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Датотека" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Назив датотеке увећања" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Видео" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Видео кодек" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Својства видео кодека" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Аудио кодек" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Својства аудио кодека" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Лево" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Десно" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Доле" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Горе" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 бита" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 бита" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Самостално фокусирање (непрекидно)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "подеси фокус" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Примени" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Проток кадра:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Резолуција:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Излаз камере:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "———— Видео филтери ————" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Огледало" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Обрнуто" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Негатив" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Моно" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Комадићи" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Честице" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Штампа издање" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Видео уређај за коришћење [основни: „/dev/video0“]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Начин снимања (1-ммап (основно) 2-читај)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Учитај профил" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Упозорење Камерице:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "снимам видео у" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "МПЕГ2 — (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "МП3 — (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Долби АЦ3 — (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "Ниски АЦЦ — (faac)" #~ msgid "Audio" #~ msgstr "Аудио" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid " Show VU meter" #~ msgstr " Прикажи ВУ метар" #~ msgid "---- Audio Effects ----" #~ msgstr "———— Аудио ефекти ————" #~ msgid "Save File" #~ msgstr "Сачувајте датотеку" #~ msgid "codec values" #~ msgstr "вредности кодека" #~ msgid "capturing photo to" #~ msgstr "снимам фотографију у" #~ msgid "Cap. Video" #~ msgstr "Сними видео" #~ msgid "GUVCViewer Controls" #~ msgstr "Контроле Камерице" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да отворим уређај" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Проверите да ли је камера повезана и да ли\n" #~ "је инсталиран исправан управљачки програм." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Камерица:\n" #~ "\n" #~ "Контроле УВЦ проширења" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Контроле проширења су додате УВЦ управљачком програму" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Контроле УВЦ проширења" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Дошло је до грешке приликом додавања контрола\n" #~ "проширења УВЦ управљачком програму. Уверите се да\n" #~ "сте покренули камерче као администратор (или судо)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да подесим исправан видео ток за камерче" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Уверите се да је управљачки програм вашег уређаја\n" #~ "усаглашен са в4л2 и да је исправно инсталиран." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да започнем са минималним подешавањима" #~ msgid "Please reconnect your camera." #~ msgstr "Молим поново повежите вашу камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да испитам могућности уређаја" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Уверите се да управљачки програм уређаја подржава в4л2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Грешка режима читања" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Молим покушајте „mmap“ уместо овог (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да доделим Бафере" #~ msgid "Please try restarting your system." #~ msgstr "Молим покушајте поново да покренете систем." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Грешка Камерице:\n" #~ "\n" #~ "Не могу да направим видео нит" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Молим пријавите на адресу: http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Bitmap (Bmp)" #~ msgstr "Битмап (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Преносна мрежна графика (Png)" #~ msgid "Displays debug information" #~ msgstr "Приказује информацијe о исправљању грешака" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "Излази после додавања контрола УВЦ проширења (захтева „root/sudo“)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Не пушта ток видеа (само контроле слике)" #~ msgid "Don't display a GUI" #~ msgstr "Не приказује ГКС" #~ msgid "Configuration file" #~ msgstr "Датотека подешавања" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Убрзање физичке компоненте (укључи(1) | искључи(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Формат тачака(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Величина кадра, основна: 640к480" #~ msgid "Image capture interval in seconds" #~ msgstr "Интервал снимања слике у секундама" #~ msgid "Number of Pictures to capture" #~ msgstr "Број слика за снимање" #~ msgid "Video File name (capture from start)" #~ msgstr "Назив датотеке видеа (снимање од почетка)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Време снимања видеа (у секундама)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Излази из камерице након затварања видеа" #~ msgid "Number of initial frames to skip" #~ msgstr "Број почетних кадрова за прескакање" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Приказује К/С вредност (укључи (1) | искључи (0))" #~ msgid "Load Profile at start" #~ msgstr "Учитава профил приликом покретања" #~ msgid "- local options" #~ msgstr "— локална опција" #~ msgid "Cap. Image" #~ msgstr "Сними слику" #~ msgid "Not enough free space left on disk" #~ msgstr "Нема довољно слободног простора на диску" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "ЈУЈ2 — несажети ЈУВ" #~ msgid "RGB - uncomp BMP" #~ msgstr "РГБ — несажети БМП" #~ msgid "MKV - Matroska format" #~ msgstr "МКВ — Матрошка формат" #~ msgid "WEBM - format" #~ msgstr "ВЕБМ — запис" #~ msgid " Show" #~ msgstr " Прикажи" #~ msgid "Quality:" #~ msgstr "Квалитет:" guvcview-2.0.2+debian/po/tr.po000066400000000000000000001104221256377215300162060ustar00rootroot00000000000000# Turkish translation for guvcview # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-11-06 12:49+0000\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 msgid "guvcview" msgstr "guvcview" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "GTK UVC video görüntüleyici" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "Linux uvc sürücüsü için video görüntüleyici ve yakalayıcı" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Kullanıcı Denetimleri" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Parlaklık" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Karşıtlık" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Renk" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Doygunluk" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Keskinlik" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Kontras derecesi (gama)" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Arka Işık Desteği" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Güç Hattı Frekansı" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Renk, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Odak, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "El Kipi" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Otomatik Kip" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Kapak Öncelik Kipi" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Açıklık Öncelik Kipi" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Siyah Seviyesi" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Beyaz Dengesi, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Beyaz Dengesi Yap" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Kırmızı Dengesi" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Mavi Dengesi" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Pozlandırma" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Kazanç, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Kazanç" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Yatay Çevir" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Dikey Çevir" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Yatay Merkez" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Dikey Merkez" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Kroma Otomatik Kazanç Kontrolü (AGC)" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Renk Öldürücü" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Renk Efektleri" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Kamera Denetimleri" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Otomatik Pozlandırma" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Pozlandırma Süresü, Kesin" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Pozlandırma, Dinamik Kare Oranı" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Kaydırma, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Eğme, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Kaydırma, Sıfırla" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Eğme, Sıfırla" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Kaydırma, Kesin" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Odaklama, Kesin" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Odaklama, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Odaklama, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Yakınlaştırma, Kesin" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Yakınlaştırma, Bağıl" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Yakınlaştırma, Sürekli" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Gizlilik" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Pozlama, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Pozlama, Otomatik Öncelik" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Pozlama (Kesin)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Beyaz Denge Sıcaklığı, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Beyaz Dengesi Sıcaklığı" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Beyaz Denge Bileşeni, Otomatik" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Beyaz Denge Mavi Bileşeni" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Beyaz Denge Kırmızı Bileşeni" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Odaklama" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Odaklama (Kesin)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "Kapalı" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "Açık" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "Yanıp Sönme" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "Otomatik" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Kaydır (bağıl)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Eğ (bağıl)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Kaydırmayı Sıfırla" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Eğme Sıfırla" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Odaklan (kesin)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1 Kipi" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1 Frekansı" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Video işlemeyi devre dışı bırak" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Piksel başına ham bit" #: ../gview_encoder/audio_codecs.c:63 #, fuzzy msgid "PCM - uncompressed (float 32 bit)" msgstr "PCM - sıkıştırılmamış (16 bit)" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "Vorbis" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Kamera Çıktısı:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - sıkıştırılmış" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 biçimi" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "VP8 (VP8)" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "Theora (ogg theora)" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "SES API'yı:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Girdi Aygıtı:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Örnekleme Oranı:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Aygıt Vars." #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Kanallar:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Video Filtreleri----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Göster" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Yankı" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Bulanma" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ördek" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "Videoyu Durdur (V)" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "Video Yakala (V)" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Hata" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "iptal" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Kurulu birden fazla video aygıtınız var.\n" "Bir diğerini denemek ister misiniz?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Aygıt:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview Video Yakala" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "guvcview" #: ../guvcview/gui_gtk3.c:572 #, fuzzy msgid "Stop Cap. (I)" msgstr "Otomatik Durdur (I)" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "Görüntü Yakala (I)" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "Resim Denetimleri" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Kullanıcı Denetimleri" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Kullanıcı Denetimleri" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Kullanıcı Denetimleri" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "Profili Kaydet" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "Profili Yükle" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "Dosya Biçimi:" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Resim Dosya adı" #: ../guvcview/gui_gtk3_callbacks.c:543 #, fuzzy msgid "Raw (*.raw)" msgstr "Ham Görüntü (raw)" #: ../guvcview/gui_gtk3_callbacks.c:544 #, fuzzy msgid "Jpeg (*.jpg)" msgstr "Jpeg (jpg)" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Resim Dosya adı" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "yeni başlat" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "yeniden başlat" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "yeni" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "iptal" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "yeni süreç başlat veya yeniden başlat?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "ses çözücü değerleri" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " kodlayıcı fps: \n" " (0 - fps kutu değerini kullan)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr " tek düze puan" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bıt oranı: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "azami qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia boyutu: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "ön dia boyutu: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "ön me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "ön cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "alt cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "son öngörücü sayısı: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop boyutu: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me yöntemi: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb kararı: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "en yüks. B karesi: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "işlem sayısı: " #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "ses çözücü değerleri" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "örnek biçimi: " #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "Resim Denetimleri" #: ../guvcview/gui_gtk3_h264ctrls.c:633 #, fuzzy msgid "CBR" msgstr "VBR (Değişken bitoranı)" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "VBR (Değişken bitoranı)" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 msgid "Bit Rate:" msgstr "Bit Oranı:" #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 msgid "Resolution" msgstr "Çözünürlük" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "Profil" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "Resim Denetimleri" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Kare Oranı:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 #, fuzzy msgid "Bit Rate" msgstr "Bit Oranı:" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 #, fuzzy msgid "Profile:" msgstr "Profil" #: ../guvcview/gui_gtk3_h264ctrls.c:928 #, fuzzy msgid "Baseline Profile" msgstr "Profili Kaydet" #: ../guvcview/gui_gtk3_h264ctrls.c:930 #, fuzzy msgid "Main Profile" msgstr "Profili Kaydet" #: ../guvcview/gui_gtk3_h264ctrls.c:932 #, fuzzy msgid "High Profile" msgstr "Profil" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 #, fuzzy msgid "Scalable High Profile" msgstr "Profili Kaydet" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 #, fuzzy msgid "Stereo High Profile" msgstr "Profili Kaydet" #: ../guvcview/gui_gtk3_h264ctrls.c:979 #, fuzzy msgid "Profile flags:" msgstr "Profil" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 #, fuzzy msgid "Stream Format:" msgstr "Dosya Biçimi:" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 #, fuzzy msgid "NAL stream format" msgstr "AVI - avi biçimi" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "en yüks. B karesi: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Kaydırmayı Sıfırla" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "Ayarlar" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "Donanım Varsayılanları" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "Kamera Düğmesi" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "Resim Yakala" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "Video Yakala" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "Fotoğraf" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "Dosya" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "Dosya Adını Arttır" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "Görüntü" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "Video Kodlayıcısı" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "Video Kodlayıcı Özellikleri" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "Ses Kodlayıcı" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "Ses Kodlayıcı Özellikleri" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Sol" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Sağ" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Aşağı" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Yukarı" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "8 bit" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "12 bit" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Otomatik Odakla (sürekli)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "Odak ayarla" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Uygula" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Kare Oranı:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Çözünürlük:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Kamera Çıktısı:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Video Filtreleri----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Ayna" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Tersine Çevir" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Negatif" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Mono" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Parçalar" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Tanecikler" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Sürümü yazdırır" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Kullanılacak Video Aygıtı [varsayılan: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Yakalama yöntemi (1-mmap (varsayılan) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 #, fuzzy msgid "load control profile" msgstr "Profili Yükle" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview Uyarısı:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, fuzzy, c-format msgid "saving video to %s" msgstr "video yakalanıyor" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "MPEG2 - (lavc)" #~ msgstr "MPEG2 - (lavc)" #~ msgid "MP3 - (lavc)" #~ msgstr "MP3 - (lavc)" #~ msgid "Dolby AC3 - (lavc)" #~ msgstr "Dolby AC3 - (lavc)" #~ msgid "ACC Low - (faac)" #~ msgstr "ACC Low - (faac)" #~ msgid "Audio" #~ msgstr "Ses" #~ msgid " Sound" #~ msgstr " Ses" #~ msgid " Show VU meter" #~ msgstr " VU Metreyi Göster" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Ses Efektleri ----" #~ msgid "Save File" #~ msgstr "Dosyayı Kaydet" #~ msgid "codec values" #~ msgstr "çözücü değerleri" #~ msgid "capturing photo to" #~ msgstr "fotoğraf yakalanıyor" #~ msgid "Cap. Video" #~ msgstr "Video Yakala" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer Denetimleri" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Aygıt açılamıyor" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Kameranızın bağlı ve doğru sürücülerinin\n" #~ "yüklendiğinden emin olun." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Uzantı denetimleri" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Uzantı denetimleri UVC sürücüsüne eklendi" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "UVC Uzantı denetimleri" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "UVC sürücüsüne uzantı denetimleri eklenirken\n" #~ "bir hata oluştu\n" #~ "guvcview'i yönetici (veya sudo) ile çalıştırdığınızdan\n" #~ "emin olun" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "guvcview için geçerli video akışı ayarlanamıyor" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Aygıt sürücünüzün v4l2 uyumlu olduğundan ve\n" #~ "doğru bir şekilde yüklendiğinden emin olun." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Asgari ayarlama başlatılamadı" #~ msgid "Please reconnect your camera." #~ msgstr "Lütfen kameranı tekrar bağla." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Aygıt özellikleri sorgulanamadı" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Aygıt sürücünüzün v4l2 desteklediğinden emin olun." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Okuma yöntemi hatası" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "mmap deneyin (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Tamponlar ayrılamıyor" #~ msgid "Please try restarting your system." #~ msgstr "Lütfen sistemi tekrar başlatmayı dene." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview hatası:\n" #~ "\n" #~ "Video İş Parçacığı oluşturulamıyor" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Lütfen http://developer.berlios.de/bugs/?group_id=8179 adresine bildirin" #~ msgid "Bitmap (Bmp)" #~ msgstr "Bitmap (Bmp)" #~ msgid "Portable Network Graphics (Png)" #~ msgstr "Taşınabilir Ağ Grafikleri (Png)" #~ msgid "Displays debug information" #~ msgstr "Hata ayıklama bilgisini görüntüler" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "UVC uzantı denetimlerini ekledikten sonra çık (yönetici/sudo gerektirir)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Video'yu akış yapma (sadece resim denetimleri)" #~ msgid "Don't display a GUI" #~ msgstr "Grafiksel Arayüz görüntüleme" #~ msgid "Configuration file" #~ msgstr "Yapılandırma dosyası" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Donanım hızlandırma (enable(1) | disable(0))" #~ msgid "" #~ "Pixel format(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgstr "" #~ "Piksel biçimi(mjpg|jpeg|yuyv|yvyu|uyvy|yyuv|yu12|yv12|nv12|nv21|nv16|nv61|" #~ "y41p|grey|y10b|y16 |s501|s505|s508|gbrg|grbg|ba81|rggb|bgr3|rgb3)" #~ msgid "Frame size, default: 640x480" #~ msgstr "Çerçeve boyutu, varsayılan: 640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "Resim yakalama aralığı (saniye)" #~ msgid "Number of Pictures to capture" #~ msgstr "Yakalanacak Resim Sayısı" #~ msgid "Video File name (capture from start)" #~ msgstr "Video Dosya adı (başlangıçtan yakala)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Video yakalama süresi (saniye)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Video kapatıldıktan sonra guvcview'den çıkar" #~ msgid "Number of initial frames to skip" #~ msgstr "Başlangıçta atlanacak kare sayısı" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "FPS değerini göster (enable(1) | disable (0))" #~ msgid "Load Profile at start" #~ msgstr "Başlangıçta Profil Yükle" #~ msgid "- local options" #~ msgstr "- yerel seçenekler" #~ msgid "Cap. Image" #~ msgstr "Resim Yakala" #~ msgid "Not enough free space left on disk" #~ msgstr "Diskte yeterli boş yer yok" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - sıkıştırılmamış YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - sıkıştırılmamış BMP" #~ msgid "MKV - Matroska format" #~ msgstr "MKV - Matroska biçimi" #~ msgid "WEBM - format" #~ msgstr "WEBM - biçimi" #~ msgid " Show" #~ msgstr " Göster" #~ msgid "Quality:" #~ msgstr "Kalite:" guvcview-2.0.2+debian/po/uk.po000066400000000000000000001127761256377215300162160ustar00rootroot00000000000000# Ukrainian translation for guvcview # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the guvcview package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:37+0000\n" "Last-Translator: Paulo Assis \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" #: ../data/guvcview.desktop.in.in.h:1 #, fuzzy msgid "guvcview" msgstr "Попередження:" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "Керуючі елементи користувача" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "Яскравість" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "Контраст" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "Відтінок" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "Насиченість" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "Різкість" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "Гамма" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "Компенсація підсвітки" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "Частота електромережі" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "Авто відтінок" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "Авто фокус" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "Ручний режим" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "Авторежим" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "Пріоритет затвору" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "Пріоритет діафрагми" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "Рівень чорного" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "Авто баланс білого" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "Збалансувати білий" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "Баланс червоного" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "Баланс синього" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "Експозиція" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "Авто посилення" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "Посилення" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "Горизонтальне віддзеркалення" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "Вертикальне віддзеркалення" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "Горизонтальна середина" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "Вертикальна середина" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "Chroma AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "Подавлювач кольору" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "Ефекти кольору" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "Керування камерою" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "Авто експозиція" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "Абсолютний час експозиції" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "Експозиція, динамічна частота кадрів" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "Відносний поворот" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "Відносний нахил" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "Скинути поворот" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "Скинути нахил" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "Абсолютний поворот" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "Відносний фокус" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "Авто фокус" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "Абсолютний зум" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "Відносний зум" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "Безперервний зум" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "Конфіденційність" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "Авто експозиція" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "Пріоритет авто експозиції" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "Абсолютна експозиція" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "Авто температура балансу білого" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "Температура балансу білого" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "Авто компонент балансу білого" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "Синій компонент балансу білого" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "Червоний компонент балансу білого" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "Фокус" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Відносний поворот" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "Відносний нахил" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Скинути поворот" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "Скинути нахил" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "Абсолютний фокус" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "Метод світлодіода" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "Частота світлодіода" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "Відключити обробку відео" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Сирі біти на піксель" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "Вивід камери:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - стиснено" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG-відео 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 флеш-відео 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - відео Windows Media 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - формат MPG2" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "Аудіо API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "Пристрій вводу:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "Частота дискредитації:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Пристрій по замовч." #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "Канали:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - моно" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - стерео" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---- Відео фільтри ----" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " Ехо" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Ревербація" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " Пух" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " ВахВах" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Голубка" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "Помилка" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "відмінити" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" "\n" "Встановлено більше одного відео пристрою.\n" "Ви хочете спробувати ще один?\n" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "Пристрій:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Захоплювач відео Guvcview" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "Попередження:" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "" "Керування\n" "зображенням" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "Керуючі елементи користувача" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "Керуючі елементи користувача" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "Керуючі елементи користувача" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "Файл зображення" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "Файл зображення" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "запустити новий" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "перезавантаж." #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "новий" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "відмінити" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "запустити новий процес, \n" "чи перезавантажити?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "значення аудіо-кодека" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " частота кадрів: \n" " (0 - використати значення з випадаючого списку)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "бітрейт: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "макс. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "значення лічильника прогнозиста: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop size: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me method: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb decision: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "max B frames: " #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "значення аудіо-кодека" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "" "Керування\n" "зображенням" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "бітрейт: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "Роздільна здатність:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "" "Керування\n" "зображенням" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "Частота кадрів:" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "max B frames: " #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Скинути поворот" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "Лівий" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "Правий" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "Вниз" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "Вверх" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "Авто фокус (безперервний)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "встановити фокус" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "Застосувати" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "Частота кадрів:" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "Роздільна здатність:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "Вивід камери:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---- Відео фільтри ----" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " Гор. віддзеркал." #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " Верт. віддзеркал." #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " Негатив" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " Чорно-біле" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " Мозаїка" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " Часточки" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "Показує версію" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "Використаний відео-пристрій [default: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "Метод захоплення (1-mmap (замовч.) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Попередження:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "Аудіо" #~ msgid " Sound" #~ msgstr " Звук" #~ msgid "---- Audio Effects ----" #~ msgstr "---- Ефекти аудіо ----" #~ msgid "Save File" #~ msgstr "Зберегти" #~ msgid "codec values" #~ msgstr "значення кодека" #~ msgid "Cap. Video" #~ msgstr "Відео" #~ msgid "GUVCViewer Controls" #~ msgstr "Панель налаштувань Guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу відкрити пристрій" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "Переконайтесь, що камера підключена\n" #~ "і встановлено відповідний драйвер." #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "Елементи керування розширенням UVC" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "Керуючі елементи розширення були додані до драйверу UVC" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Керуючі елементи UVC" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "Виникла помилка в процесі додавання керуючих \n" #~ "елементів розширення до драйверу UVC.\n" #~ "Переконайтесь що Guvcview запущено від імені root (чи sudo)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу встановити правильний відео потік для Guvcview" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "Переконайтесь, що драйвер сумісний з v4l2\n" #~ "і встановлений правильно." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу запуститись з мінімальною установкою" #~ msgid "Please reconnect your camera." #~ msgstr "Будь ласка, повторно підключіть свою камеру." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу надіслати запит про можливості пристрою" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "Переконайтесь, що драйвер пристрою підтримує v4l2" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Помилка методу зчитування." #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "Будь ласка, спробуйте mmap instead (--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу виділити місце під Буфери." #~ msgid "Please try restarting your system." #~ msgstr "Будь ласка, спробуйте перезавантажити систему." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Помилка:\n" #~ "\n" #~ "Не можу створити потік команд для відео" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "" #~ "Будь ласка, повідомте про це тут http://developer.berlios.de/bugs/?" #~ "group_id=8179" #~ msgid "Displays debug information" #~ msgstr "Показує інформацію для відлагоджування" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "" #~ "Вийти після додавання керуючих елементів розширення UVC\n" #~ "(потрібні права адміністратора)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "Не потокове відео (керувати лише зображенням)" #~ msgid "Configuration file" #~ msgstr "Файл конфігурації" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "Апаратне прискорення (увімкн.(1) | вимкн.(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "Розмір кадру (замовч. - 640x480)" #~ msgid "Image capture interval in seconds" #~ msgstr "Інтервал між знімками (сек.)" #~ msgid "Number of Pictures to capture" #~ msgstr "Кількість знімків" #~ msgid "Video File name (capture from start)" #~ msgstr "Файл відео (запис зразу після запуску)" #~ msgid "Video capture time (in seconds)" #~ msgstr "Тривалість запису (сек.)" #~ msgid "Exits guvcview after closing video" #~ msgstr "Вийти з Guvcview після закриття відео" #~ msgid "Number of initial frames to skip" #~ msgstr "Кількість початкових кадрів для пропуску" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "Відображення частоти кадрів (увімкн.(1) | вимкн. (0))" #~ msgid "Load Profile at start" #~ msgstr "Завантажити профіль при запуску" #~ msgid "- local options" #~ msgstr "- локальні параметри" #~ msgid "Cap. Image" #~ msgstr "Знімок" #~ msgid "Not enough free space left on disk" #~ msgstr "Не вистачає вільного місця на диску" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - не стиснений YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - не стиснений BMP" #~ msgid " Show" #~ msgstr " Показати" #~ msgid "Quality:" #~ msgstr "Якість:" guvcview-2.0.2+debian/po/zh_TW.po000066400000000000000000001023401256377215300166140ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: guvcview\n" "Report-Msgid-Bugs-To: pj.assis@gmail.com\n" "POT-Creation-Date: 2014-08-17 22:49+0100\n" "PO-Revision-Date: 2013-02-25 05:36+0000\n" "Last-Translator: kentxchang \n" "Language-Team: none \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-12-08 10:36+0000\n" "X-Generator: Launchpad (build 16869)\n" "X-Poedit-Country: TAIWAN\n" "X-Poedit-Language: Chinese\n" #: ../data/guvcview.desktop.in.in.h:1 #, fuzzy msgid "guvcview" msgstr "Guvcview警告:" #: ../data/guvcview.desktop.in.in.h:2 msgid "GTK UVC video viewer" msgstr "" #: ../data/guvcview.desktop.in.in.h:3 msgid "A video viewer and capturer for the linux uvc driver" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:1 msgid "capture video from v4l2 devices" msgstr "" #: ../data/guvcview.appdata.xml.in.in.h:2 msgid "" "Video capture tool for video4linux2 compliant cameras, with special emphasis " "on the linux uvc driver. It provides Image (jpg, png, bmp) and Video (mjpeg, " "flv1, wmv1, mpg2, mpg4,...) capture with sound in several " "formats( currently: avi and matroska). I also supports a control panel " "option (--control_only) that is compatible with any other v4l2 app." msgstr "" #. #. * needed only for language files (not used) #. #. V4L2 control strings #: ../gview_v4l2core/v4l2_controls.c:49 msgid "User Controls" msgstr "使用者設定" #: ../gview_v4l2core/v4l2_controls.c:50 msgid "Brightness" msgstr "亮度" #: ../gview_v4l2core/v4l2_controls.c:51 msgid "Contrast" msgstr "對比" #: ../gview_v4l2core/v4l2_controls.c:52 msgid "Hue" msgstr "色調" #: ../gview_v4l2core/v4l2_controls.c:53 msgid "Saturation" msgstr "飽和度" #: ../gview_v4l2core/v4l2_controls.c:54 msgid "Sharpness" msgstr "銳利度" #: ../gview_v4l2core/v4l2_controls.c:55 msgid "Gamma" msgstr "伽瑪值" #: ../gview_v4l2core/v4l2_controls.c:56 msgid "Backlight Compensation" msgstr "背光補償" #: ../gview_v4l2core/v4l2_controls.c:57 msgid "Power Line Frequency" msgstr "視訊頻率" #: ../gview_v4l2core/v4l2_controls.c:58 msgid "Hue, Automatic" msgstr "自動色調" #: ../gview_v4l2core/v4l2_controls.c:59 msgid "Focus, Auto" msgstr "自動對焦" #: ../gview_v4l2core/v4l2_controls.c:60 msgid "Manual Mode" msgstr "手動模式" #: ../gview_v4l2core/v4l2_controls.c:61 msgid "Auto Mode" msgstr "自動模式" #: ../gview_v4l2core/v4l2_controls.c:62 msgid "Shutter Priority Mode" msgstr "快門優先模式" #: ../gview_v4l2core/v4l2_controls.c:63 msgid "Aperture Priority Mode" msgstr "光圈優先模式" #: ../gview_v4l2core/v4l2_controls.c:64 msgid "Black Level" msgstr "黑色等級" #: ../gview_v4l2core/v4l2_controls.c:65 msgid "White Balance, Automatic" msgstr "自動白平衡" #: ../gview_v4l2core/v4l2_controls.c:66 msgid "Do White Balance" msgstr "設置白平衡" #: ../gview_v4l2core/v4l2_controls.c:67 msgid "Red Balance" msgstr "紅平衡" #: ../gview_v4l2core/v4l2_controls.c:68 msgid "Blue Balance" msgstr "藍平衡" #: ../gview_v4l2core/v4l2_controls.c:69 msgid "Exposure" msgstr "曝光度" #: ../gview_v4l2core/v4l2_controls.c:70 msgid "Gain, Automatic" msgstr "自動增益" #: ../gview_v4l2core/v4l2_controls.c:71 msgid "Gain" msgstr "增益" #: ../gview_v4l2core/v4l2_controls.c:72 msgid "Horizontal Flip" msgstr "水平翻轉" #: ../gview_v4l2core/v4l2_controls.c:73 msgid "Vertical Flip" msgstr "垂直翻轉" #: ../gview_v4l2core/v4l2_controls.c:74 msgid "Horizontal Center" msgstr "水平中心" #: ../gview_v4l2core/v4l2_controls.c:75 msgid "Vertical Center" msgstr "垂直中心" #: ../gview_v4l2core/v4l2_controls.c:76 msgid "Chroma AGC" msgstr "濃度AGC" #: ../gview_v4l2core/v4l2_controls.c:77 msgid "Color Killer" msgstr "顏色 killer" #: ../gview_v4l2core/v4l2_controls.c:78 msgid "Color Effects" msgstr "色彩效果" #. CAMERA CLASS control strings #: ../gview_v4l2core/v4l2_controls.c:81 msgid "Camera Controls" msgstr "攝影機設定" #: ../gview_v4l2core/v4l2_controls.c:82 msgid "Auto Exposure" msgstr "自動曝光" #: ../gview_v4l2core/v4l2_controls.c:83 msgid "Exposure Time, Absolute" msgstr "絕對曝光時間" #: ../gview_v4l2core/v4l2_controls.c:84 msgid "Exposure, Dynamic Framerate" msgstr "曝光,動態碼率" #: ../gview_v4l2core/v4l2_controls.c:85 msgid "Pan, Relative" msgstr "筆,相對的" #: ../gview_v4l2core/v4l2_controls.c:86 msgid "Tilt, Relative" msgstr "傾斜,相對的" #: ../gview_v4l2core/v4l2_controls.c:87 msgid "Pan, Reset" msgstr "筆,重設" #: ../gview_v4l2core/v4l2_controls.c:88 msgid "Tilt, Reset" msgstr "傾斜,重設" #: ../gview_v4l2core/v4l2_controls.c:89 msgid "Pan, Absolute" msgstr "筆,絕對的" #: ../gview_v4l2core/v4l2_controls.c:91 msgid "Focus, Absolute" msgstr "對焦,絕對的" #: ../gview_v4l2core/v4l2_controls.c:92 msgid "Focus, Relative" msgstr "對焦,相對的" #: ../gview_v4l2core/v4l2_controls.c:93 msgid "Focus, Automatic" msgstr "對焦,自動" #: ../gview_v4l2core/v4l2_controls.c:94 msgid "Zoom, Absolute" msgstr "變焦,絕對的" #: ../gview_v4l2core/v4l2_controls.c:95 msgid "Zoom, Relative" msgstr "變焦,相對的" #: ../gview_v4l2core/v4l2_controls.c:96 msgid "Zoom, Continuous" msgstr "變焦,連續的" #: ../gview_v4l2core/v4l2_controls.c:97 msgid "Privacy" msgstr "隱私" #. UVC specific control strings #: ../gview_v4l2core/v4l2_controls.c:100 msgid "Exposure, Auto" msgstr "曝光,自動" #: ../gview_v4l2core/v4l2_controls.c:101 msgid "Exposure, Auto Priority" msgstr "曝光,自動優先" #: ../gview_v4l2core/v4l2_controls.c:102 msgid "Exposure (Absolute)" msgstr "曝光(絕對)" #: ../gview_v4l2core/v4l2_controls.c:103 msgid "White Balance Temperature, Auto" msgstr "白平衡溫度,自動" #: ../gview_v4l2core/v4l2_controls.c:104 msgid "White Balance Temperature" msgstr "白平衡溫度" #: ../gview_v4l2core/v4l2_controls.c:105 msgid "White Balance Component, Auto" msgstr "白平衡元件,自動" #: ../gview_v4l2core/v4l2_controls.c:106 msgid "White Balance Blue Component" msgstr "白平衡藍元件" #: ../gview_v4l2core/v4l2_controls.c:107 msgid "White Balance Red Component" msgstr "白平衡紅元件" #. libwebcam specific control strings #: ../gview_v4l2core/v4l2_controls.c:110 msgid "Focus" msgstr "對焦" #: ../gview_v4l2core/v4l2_controls.c:111 msgid "Focus (Absolute)" msgstr "對焦(絕對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:63 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Off" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:64 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "On" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:65 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Blinking" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:66 ../guvcview/gui_gtk3_v4l2ctrls.c:239 msgid "Auto" msgstr "" #: ../gview_v4l2core/v4l2_xu_ctrls.c:73 msgid "Pan (relative)" msgstr "Pan (相對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:86 msgid "Tilt (relative)" msgstr "傾斜(相對的)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:99 msgid "Pan Reset" msgstr "Pan 重設" #: ../gview_v4l2core/v4l2_xu_ctrls.c:112 msgid "Tilt Reset" msgstr "傾斜重設" #: ../gview_v4l2core/v4l2_xu_ctrls.c:125 msgid "Focus (absolute)" msgstr "對焦(絕對值)" #: ../gview_v4l2core/v4l2_xu_ctrls.c:138 msgid "LED1 Mode" msgstr "LED1模式" #: ../gview_v4l2core/v4l2_xu_ctrls.c:151 msgid "LED1 Frequency" msgstr "LED1頻率" #: ../gview_v4l2core/v4l2_xu_ctrls.c:164 msgid "Disable video processing" msgstr "停用影像處理" #: ../gview_v4l2core/v4l2_xu_ctrls.c:177 msgid "Raw bits per pixel" msgstr "Raw bits per pixel" #: ../gview_encoder/audio_codecs.c:63 msgid "PCM - uncompressed (float 32 bit)" msgstr "" #: ../gview_encoder/audio_codecs.c:80 msgid "MP2 (MPEG audio layer 2)" msgstr "" #: ../gview_encoder/audio_codecs.c:97 msgid "MP3 (MPEG audio layer 3)" msgstr "" #: ../gview_encoder/audio_codecs.c:118 msgid "AC-3 (ATSC A/52A)" msgstr "" #: ../gview_encoder/audio_codecs.c:139 msgid "AAC (Advanced Audio Coding)" msgstr "" #: ../gview_encoder/audio_codecs.c:160 msgid "Vorbis" msgstr "" #: ../gview_encoder/video_codecs.c:75 #, fuzzy msgid "Raw camera input" msgstr "攝影機輸出:" #: ../gview_encoder/video_codecs.c:111 msgid "MJPG - compressed" msgstr "MJPG - compressed" #: ../gview_encoder/video_codecs.c:147 msgid "MPEG video 1" msgstr "MPEG video 1" #: ../gview_encoder/video_codecs.c:183 msgid "FLV1 - flash video 1" msgstr "FLV1 - flash video 1" #: ../gview_encoder/video_codecs.c:219 msgid "WMV1 - win. med. video 7" msgstr "WMV1 - win. med. video 7" #: ../gview_encoder/video_codecs.c:255 msgid "MPG2 - MPG2 format" msgstr "MPG2 - MPG2 format" #: ../gview_encoder/video_codecs.c:291 msgid "MS MP4 V3" msgstr "MS MP4 V3" #: ../gview_encoder/video_codecs.c:327 msgid "MPEG4-ASP" msgstr "MPEG4-ASP" #: ../gview_encoder/video_codecs.c:363 msgid "MPEG4-AVC (H264)" msgstr "MPEG4-AVC (H264)" #: ../gview_encoder/video_codecs.c:403 msgid "VP8 (VP8)" msgstr "" #: ../gview_encoder/video_codecs.c:439 msgid "Theora (ogg theora)" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:95 msgid "Audio API:" msgstr "音頻API:" #: ../guvcview/gui_gtk3_audioctrls.c:106 msgid "NO SOUND" msgstr "" #: ../guvcview/gui_gtk3_audioctrls.c:107 msgid "PORTAUDIO" msgstr "PORTAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:110 msgid "PULSEAUDIO" msgstr "PULSEAUDIO" #: ../guvcview/gui_gtk3_audioctrls.c:127 msgid "Input Device:" msgstr "輸入設備:" #: ../guvcview/gui_gtk3_audioctrls.c:161 msgid "Sample Rate:" msgstr "範例碼率:" #: ../guvcview/gui_gtk3_audioctrls.c:168 ../guvcview/gui_gtk3_audioctrls.c:214 msgid "Dev. Default" msgstr "Dev. Default" #: ../guvcview/gui_gtk3_audioctrls.c:207 msgid "Channels:" msgstr "聲道:" #: ../guvcview/gui_gtk3_audioctrls.c:215 msgid "1 - mono" msgstr "1 - mono" #: ../guvcview/gui_gtk3_audioctrls.c:216 msgid "2 - stereo" msgstr "2 - stereo" #: ../guvcview/gui_gtk3_audioctrls.c:235 #, fuzzy msgid "---- Audio Filters ----" msgstr "---影像濾波器---" #. Echo FX #: ../guvcview/gui_gtk3_audioctrls.c:255 msgid " Echo" msgstr " 迴聲" #. Reverb FX #: ../guvcview/gui_gtk3_audioctrls.c:268 msgid " Reverb" msgstr " Reverb" #. Fuzz FX #: ../guvcview/gui_gtk3_audioctrls.c:281 msgid " Fuzz" msgstr " 模糊" #. WahWah FX #: ../guvcview/gui_gtk3_audioctrls.c:294 msgid " WahWah" msgstr " WahWah" #. Ducky FX #: ../guvcview/gui_gtk3_audioctrls.c:307 msgid " Ducky" msgstr " Ducky" #: ../guvcview/gui_gtk3.c:310 ../guvcview/gui_gtk3_callbacks.c:749 msgid "Stop Video (V)" msgstr "" #. video button #: ../guvcview/gui_gtk3.c:315 ../guvcview/gui_gtk3.c:600 #: ../guvcview/gui_gtk3_callbacks.c:755 msgid "Cap. Video (V)" msgstr "" #: ../guvcview/gui_gtk3.c:376 ../guvcview/gui_gtk3.c:383 msgid "Error" msgstr "" #: ../guvcview/gui_gtk3.c:379 ../guvcview/gui_gtk3.c:386 #: ../guvcview/gui_gtk3_callbacks.c:2097 msgid "_Ok" msgstr "" #: ../guvcview/gui_gtk3.c:380 ../guvcview/gui_gtk3_callbacks.c:185 #: ../guvcview/gui_gtk3_callbacks.c:199 ../guvcview/gui_gtk3_callbacks.c:522 #: ../guvcview/gui_gtk3_callbacks.c:624 ../guvcview/gui_gtk3_callbacks.c:1755 #: ../guvcview/gui_gtk3_callbacks.c:2098 #, fuzzy msgid "_Cancel" msgstr "取消" #: ../guvcview/gui_gtk3.c:407 msgid "" "\n" "You have more than one video device installed.\n" "Do you want to try another one ?\n" msgstr "" #. ---- Devices ---- #: ../guvcview/gui_gtk3.c:414 ../guvcview/gui_gtk3_videoctrls.c:106 msgid "Device:" msgstr "設備:" #: ../guvcview/gui_gtk3.c:516 msgid "Guvcview Video Capture" msgstr "Guvcview Video Capture" #: ../guvcview/gui_gtk3.c:525 #, fuzzy msgid "Guvcview" msgstr "Guvcview警告:" #: ../guvcview/gui_gtk3.c:572 msgid "Stop Cap. (I)" msgstr "" #: ../guvcview/gui_gtk3.c:578 ../guvcview/gui_gtk3_callbacks.c:720 #: ../guvcview/video_capture.c:250 msgid "Cap. Image (I)" msgstr "" #. quit button #. GtkWidget *quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT); #: ../guvcview/gui_gtk3.c:621 msgid "_Quit" msgstr "" #: ../guvcview/gui_gtk3.c:667 msgid "Image Controls" msgstr "影像設定" #: ../guvcview/gui_gtk3.c:703 #, fuzzy msgid "H264 Controls" msgstr "使用者設定" #: ../guvcview/gui_gtk3.c:742 #, fuzzy msgid "Video Controls" msgstr "使用者設定" #: ../guvcview/gui_gtk3.c:777 #, fuzzy msgid "Audio Controls" msgstr "使用者設定" #: ../guvcview/gui_gtk3_callbacks.c:182 ../guvcview/gui_gtk3_menu.c:72 msgid "Save Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:186 ../guvcview/gui_gtk3_callbacks.c:523 #: ../guvcview/gui_gtk3_callbacks.c:625 msgid "_Save" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:196 ../guvcview/gui_gtk3_menu.c:71 msgid "Load Profile" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:200 msgid "_Open" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:208 ../guvcview/gui_gtk3_callbacks.c:531 #: ../guvcview/gui_gtk3_callbacks.c:634 msgid "File Format:" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:220 msgid "gpfl (*.gpfl)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:221 msgid "any (*.*)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:519 #, fuzzy msgid "Photo file name" msgstr "圖片檔案名稱" #: ../guvcview/gui_gtk3_callbacks.c:543 msgid "Raw (*.raw)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:544 msgid "Jpeg (*.jpg)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:545 msgid "Png (*.png)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:546 msgid "Bmp (*.bmp)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:621 #, fuzzy msgid "Video file name" msgstr "圖片檔案名稱" #: ../guvcview/gui_gtk3_callbacks.c:646 msgid "Matroska (*.mkv)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:647 msgid "WebM (*.webm)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:648 msgid "Avi (*.avi)" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1158 msgid "start new" msgstr "馬上啟動" #: ../guvcview/gui_gtk3_callbacks.c:1161 msgid "restart" msgstr "重新啟動" #: ../guvcview/gui_gtk3_callbacks.c:1163 msgid "new" msgstr "新增" #: ../guvcview/gui_gtk3_callbacks.c:1165 msgid "cancel" msgstr "取消" #: ../guvcview/gui_gtk3_callbacks.c:1170 msgid "" "launch new process or restart?.\n" "\n" msgstr "" "啟動新的程序或重新啟動?\n" "\n" #: ../guvcview/gui_gtk3_callbacks.c:1751 #, fuzzy msgid "video codec values" msgstr "音頻編碼器數值" #: ../guvcview/gui_gtk3_callbacks.c:1754 msgid "_OK" msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:1760 msgid "" " encoder fps: \n" " (0 - use fps combobox value)" msgstr "" " encoder fps: \n" " (0 - use fps combobox value)" #: ../guvcview/gui_gtk3_callbacks.c:1773 msgid " monotonic pts" msgstr "" #. bit rate #: ../guvcview/gui_gtk3_callbacks.c:1780 ../guvcview/gui_gtk3_callbacks.c:2105 msgid "bit rate: " msgstr "bit rate: " #: ../guvcview/gui_gtk3_callbacks.c:1793 msgid "qmax: " msgstr "qmax: " #: ../guvcview/gui_gtk3_callbacks.c:1806 msgid "qmin: " msgstr "qmin: " #: ../guvcview/gui_gtk3_callbacks.c:1819 msgid "max. qdiff: " msgstr "max. qdiff: " #: ../guvcview/gui_gtk3_callbacks.c:1832 msgid "dia size: " msgstr "dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1845 msgid "pre dia size: " msgstr "pre dia size: " #: ../guvcview/gui_gtk3_callbacks.c:1858 msgid "pre me: " msgstr "pre me: " #: ../guvcview/gui_gtk3_callbacks.c:1871 msgid "pre cmp: " msgstr "pre cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1884 msgid "cmp: " msgstr "cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1897 msgid "sub cmp: " msgstr "sub cmp: " #: ../guvcview/gui_gtk3_callbacks.c:1910 msgid "last predictor count: " msgstr "last predictor count: " #: ../guvcview/gui_gtk3_callbacks.c:1923 msgid "gop size: " msgstr "gop size: " #: ../guvcview/gui_gtk3_callbacks.c:1936 msgid "qcompress: " msgstr "qcompress: " #: ../guvcview/gui_gtk3_callbacks.c:1949 msgid "qblur: " msgstr "qblur: " #: ../guvcview/gui_gtk3_callbacks.c:1962 msgid "subq: " msgstr "subq: " #: ../guvcview/gui_gtk3_callbacks.c:1975 msgid "framerefs: " msgstr "framerefs: " #: ../guvcview/gui_gtk3_callbacks.c:1988 msgid "me method: " msgstr "me method: " #: ../guvcview/gui_gtk3_callbacks.c:2001 msgid "mb decision: " msgstr "mb decision: " #: ../guvcview/gui_gtk3_callbacks.c:2014 msgid "max B frames: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2027 msgid "num threads: " msgstr "" #: ../guvcview/gui_gtk3_callbacks.c:2094 msgid "audio codec values" msgstr "音頻編碼器數值" #. sample format #: ../guvcview/gui_gtk3_callbacks.c:2119 msgid "sample format: " msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:622 #, fuzzy msgid "Rate Control Mode:" msgstr "影像設定" #: ../guvcview/gui_gtk3_h264ctrls.c:633 msgid "CBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:636 msgid "VBR" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:640 msgid "Constant QP" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:658 msgid "Rate Control Mode flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:683 msgid "Temporal Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:711 msgid "Spatial Scale Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:741 msgid "Frame Interval (100ns units):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:778 #, fuzzy msgid "Bit Rate:" msgstr "bit rate: " #: ../guvcview/gui_gtk3_h264ctrls.c:801 msgid "Hints:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:806 #, fuzzy msgid "Resolution" msgstr "影像尺寸:" #: ../guvcview/gui_gtk3_h264ctrls.c:810 msgid "Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:814 #, fuzzy msgid "Rate Control" msgstr "影像設定" #: ../guvcview/gui_gtk3_h264ctrls.c:818 msgid "Usage Type" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:822 msgid "Slice Mode" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:826 msgid "Slice Unit" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:830 msgid "MVC View" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:834 msgid "Temporal Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:838 msgid "SNR Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:842 msgid "Spatial Scale" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:846 msgid "Spatial Layer Ratio" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:850 #, fuzzy msgid "Frame Interval" msgstr "影格率" #: ../guvcview/gui_gtk3_h264ctrls.c:854 msgid "Leaky Bucket Size" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:858 msgid "Bit Rate" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:862 ../guvcview/gui_gtk3_h264ctrls.c:1220 msgid "CABAC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:866 msgid "(I) Frame Period" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:878 msgid "Slice Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:885 msgid "no multiple slices" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:887 msgid "bits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:889 msgid "Mbits/slice" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:891 msgid "slices/frame" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:900 msgid "Slice Units:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:921 msgid "Profile:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:928 msgid "Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:930 msgid "Main Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:932 msgid "High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:934 msgid "Scalable Baseline Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:936 msgid "Scalable High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:938 msgid "Multiview High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:940 msgid "Stereo High Profile" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:979 msgid "Profile flags:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1004 msgid "(I) Frame Period (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1025 msgid "Estimated Video Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1046 msgid "Estimated Max Config Delay (ms):" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1067 msgid "Usage Type:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1074 msgid "Real-time" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1076 msgid "Broadcast" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1078 msgid "Storage" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1080 msgid "(0) Non-scalable single layer AVC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1082 msgid "(1) SVC temporal scalability with hierarchical P" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1084 msgid "(2q) SVC temporal scalability + Quality/SNR scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1086 msgid "(2s) SVC temporal scalability + spatial scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1088 msgid "(3) Full SVC scalability" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1102 msgid "SNR Control Mode:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1109 msgid "No SNR Enhancement Layer" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1111 msgid "CGS NonRewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1113 msgid "CGS NonRewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1115 msgid "CGS Rewrite (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1117 msgid "CGS Rewrite (3 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1119 msgid "MGS (2 Layer)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1144 msgid "Stream Mux Enable" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1151 msgid "Embed H.264 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1153 msgid "Embed YUY2 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1155 msgid "Embed NV12 aux stream" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1175 msgid "MJPG payload container" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1189 msgid "Stream Format:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1197 msgid "Byte stream format (H.264 Annex-B)" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1199 msgid "NAL stream format" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1210 msgid "Entropy CABAC:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1218 msgid "CAVLC" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1231 msgid "Picture timing SEI" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1238 #, fuzzy msgid "B Frames:" msgstr "影格率" #: ../guvcview/gui_gtk3_h264ctrls.c:1263 msgid "Preview Flipped" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1270 msgid "Additional MVC Views:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1295 msgid "Simulcast stream index:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1320 msgid "Spatial Layer Ratio:" msgstr "" #: ../guvcview/gui_gtk3_h264ctrls.c:1349 msgid "Leaky Bucket Size (ms):" msgstr "" #. encoder reset #: ../guvcview/gui_gtk3_h264ctrls.c:1376 #, fuzzy msgid "Encoder Reset" msgstr "Pan 重設" #. #. GtkWidget *probe_button = gtk_button_new_with_label(_("PROBE")); #. g_signal_connect (GTK_BUTTON(probe_button), "clicked", #. G_CALLBACK (h264_probe_button_clicked), all_data); #. #. gtk_grid_attach (GTK_GRID(h264_controls_grid), probe_button, 0, line, 1 ,1); #. gtk_widget_show(probe_button); #. #: ../guvcview/gui_gtk3_h264ctrls.c:1391 msgid "COMMIT" msgstr "" #: ../guvcview/gui_gtk3_menu.c:70 msgid "Settings" msgstr "" #: ../guvcview/gui_gtk3_menu.c:73 msgid "Hardware Defaults" msgstr "" #: ../guvcview/gui_gtk3_menu.c:81 msgid "Camera Button" msgstr "" #: ../guvcview/gui_gtk3_menu.c:86 msgid "Capture Image" msgstr "" #: ../guvcview/gui_gtk3_menu.c:91 msgid "Capture Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:134 msgid "Photo" msgstr "" #: ../guvcview/gui_gtk3_menu.c:135 ../guvcview/gui_gtk3_menu.c:159 msgid "File" msgstr "" #: ../guvcview/gui_gtk3_menu.c:136 ../guvcview/gui_gtk3_menu.c:160 msgid "Increment Filename" msgstr "" #: ../guvcview/gui_gtk3_menu.c:158 msgid "Video" msgstr "" #: ../guvcview/gui_gtk3_menu.c:175 msgid "Video Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:202 msgid "Video Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_menu.c:208 msgid "Audio Codec" msgstr "" #: ../guvcview/gui_gtk3_menu.c:235 msgid "Audio Codec Properties" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:174 msgid "Left" msgstr "左" #: ../guvcview/gui_gtk3_v4l2ctrls.c:175 msgid "Right" msgstr "右" #: ../guvcview/gui_gtk3_v4l2ctrls.c:179 msgid "Down" msgstr "下" #: ../guvcview/gui_gtk3_v4l2ctrls.c:180 msgid "Up" msgstr "上" #. turn it into a menu control #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "8 bit" msgstr "" #: ../guvcview/gui_gtk3_v4l2ctrls.c:296 msgid "12 bit" msgstr "" #. add a virtual control for software autofocus #: ../guvcview/gui_gtk3_v4l2ctrls.c:348 msgid "Auto Focus (continuous)" msgstr "自動對焦(連續)" #: ../guvcview/gui_gtk3_v4l2ctrls.c:349 msgid "set Focus" msgstr "設定焦點" #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2= gtk_button_new_from_stock(GTK_STOCK_APPLY); #. control_widgets_list[n].widget2 = gtk_button_new_from_stock(GTK_STOCK_APPLY); #: ../guvcview/gui_gtk3_v4l2ctrls.c:433 ../guvcview/gui_gtk3_v4l2ctrls.c:456 #: ../guvcview/gui_gtk3_v4l2ctrls.c:478 #, fuzzy msgid "_Apply" msgstr "套用" #: ../guvcview/gui_gtk3_videoctrls.c:144 msgid "Frame Rate:" msgstr "影格率" #: ../guvcview/gui_gtk3_videoctrls.c:204 msgid "Resolution:" msgstr "影像尺寸:" #: ../guvcview/gui_gtk3_videoctrls.c:254 msgid "Camera Output:" msgstr "攝影機輸出:" #: ../guvcview/gui_gtk3_videoctrls.c:287 msgid "---- Video Filters ----" msgstr "---影像濾波器---" #. Mirror FX #: ../guvcview/gui_gtk3_videoctrls.c:307 msgid " Mirror" msgstr " 鏡像(水平翻轉)" #. Upturn FX #: ../guvcview/gui_gtk3_videoctrls.c:319 msgid " Invert" msgstr " 倒置(垂直翻轉)" #. Negate FX #: ../guvcview/gui_gtk3_videoctrls.c:331 msgid " Negative" msgstr " 負片效果" #. Mono FX #: ../guvcview/gui_gtk3_videoctrls.c:343 msgid " Mono" msgstr " 灰階" #. Pieces FX #: ../guvcview/gui_gtk3_videoctrls.c:356 msgid " Pieces" msgstr " 馬賽克" #. Particles #: ../guvcview/gui_gtk3_videoctrls.c:369 msgid " Particles" msgstr " 顆粒" #: ../guvcview/options.c:51 msgid "Print help" msgstr "" #: ../guvcview/options.c:58 #, fuzzy msgid "Print version" msgstr "列印版本" #: ../guvcview/options.c:64 msgid "LEVEL" msgstr "" #: ../guvcview/options.c:65 msgid "Set Verbosity level (def: 0)" msgstr "" #: ../guvcview/options.c:71 msgid "DEVICE" msgstr "" #: ../guvcview/options.c:72 #, fuzzy msgid "Set device name (def: /dev/video0)" msgstr "使用影像設備[default: /dev/video0]" #: ../guvcview/options.c:78 msgid "METHOD" msgstr "" #: ../guvcview/options.c:79 #, fuzzy msgid "Set capture method [read | mmap (def)]" msgstr "擷取方法(1-mmap (default) 2-read)" #: ../guvcview/options.c:85 msgid "WIDTHxHEIGHT" msgstr "" #: ../guvcview/options.c:86 msgid "Request resolution (e.g 640x480)" msgstr "" #: ../guvcview/options.c:92 msgid "FOURCC" msgstr "" #: ../guvcview/options.c:93 msgid "Request format (e.g MJPG)" msgstr "" #: ../guvcview/options.c:99 msgid "RENDER_API" msgstr "" #: ../guvcview/options.c:100 msgid "Select render API (e.g none; sdl)" msgstr "" #: ../guvcview/options.c:106 msgid "AUDIO_API" msgstr "" #: ../guvcview/options.c:107 msgid "Select audio API (e.g none; port; pulse)" msgstr "" #: ../guvcview/options.c:113 msgid "AUDIO_DEVICE" msgstr "" #: ../guvcview/options.c:114 msgid "Select audio device index for selected api (0..N)" msgstr "" #: ../guvcview/options.c:120 msgid "GUI_API" msgstr "" #: ../guvcview/options.c:121 msgid "Select GUI API (e.g none; gtk3)" msgstr "" #: ../guvcview/options.c:127 ../guvcview/options.c:134 msgid "CODEC" msgstr "" #: ../guvcview/options.c:128 msgid "Audio codec [pcm mp2 mp3 aac ac3 vorb]" msgstr "" #: ../guvcview/options.c:135 msgid "Video codec [raw mjpg mpeg flv1 wmv1 mpg2 mp43 dx50 h264 vp80 theo]" msgstr "" #: ../guvcview/options.c:141 ../guvcview/options.c:148 #: ../guvcview/options.c:155 msgid "FILENAME" msgstr "" #: ../guvcview/options.c:142 msgid "load control profile" msgstr "" #: ../guvcview/options.c:149 msgid "filename for captured video)" msgstr "" #: ../guvcview/options.c:156 msgid "filename for captured image)" msgstr "" #: ../guvcview/options.c:162 ../guvcview/options.c:169 msgid "TIME_IN_SEC" msgstr "" #: ../guvcview/options.c:163 msgid "time (double) in sec. for video capture)" msgstr "" #: ../guvcview/options.c:170 msgid "time (double) in sec. between captured photos)" msgstr "" #: ../guvcview/options.c:176 msgid "TOTAL" msgstr "" #: ../guvcview/options.c:177 msgid "total number of captured photos)" msgstr "" #: ../guvcview/options.c:184 msgid "Start in control panel mode" msgstr "" #: ../guvcview/options.c:307 #, fuzzy, c-format msgid "" "Guvcview version %s\n" "\n" msgstr "Guvcview警告:" #: ../guvcview/options.c:308 #, c-format msgid "" "Usage:\n" " guvcview [OPTIONS]\n" "\n" msgstr "" #: ../guvcview/options.c:309 #, c-format msgid "OPTIONS:\n" msgstr "" #: ../guvcview/video_capture.c:819 #, c-format msgid "saving video to %s" msgstr "" #. if(debug_level > 1) #. printf("GUVCVIEW: saving image to %s\n", img_filename); #: ../guvcview/video_capture.c:1069 #, c-format msgid "saving image to %s" msgstr "" #~ msgid "Audio" #~ msgstr "音頻" #~ msgid " Sound" #~ msgstr " 聲音" #~ msgid "---- Audio Effects ----" #~ msgstr "---音頻效果---" #~ msgid "Save File" #~ msgstr "存檔" #~ msgid "codec values" #~ msgstr "編解碼器的值" #~ msgid "Cap. Video" #~ msgstr "錄影" #~ msgid "GUVCViewer Controls" #~ msgstr "GUVCViewer設定" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to open device" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "" #~ "Please make sure the camera is connected\n" #~ "and that the correct driver is installed." #~ msgstr "" #~ "請確定攝影機已連接\n" #~ "且已安裝正確的驅動程式" #~ msgid "" #~ "Guvcview:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview:\n" #~ "\n" #~ "UVC 外掛控制" #~ msgid "Extension controls were added to the UVC driver" #~ msgstr "外掛控制已經被新增到UVC驅動程式中" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "UVC Extension controls" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "UVC 外掛控制" #~ msgid "" #~ "An error occurred while adding extension\n" #~ "controls to the UVC driver\n" #~ "Make sure you run guvcview as root (or sudo)." #~ msgstr "" #~ "當新增外掛時有一個錯誤發生\n" #~ "控制UVC驅動程式\n" #~ "確定你是使用root(或sudo)來執行guvcview" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Can't set a valid video stream for guvcview" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "不能為guvcview設置一個有效視訊串流值" #~ msgid "" #~ "Make sure your device driver is v4l2 compliant\n" #~ "and that it is properly installed." #~ msgstr "" #~ "請確定您的設備驅動程式符合v4l2標準\n" #~ "且它已被正確安裝。" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to start with minimum setup" #~ msgstr "" #~ "Guvcview 錯誤:\n" #~ "\n" #~ "無法啟動最小安裝" #~ msgid "Please reconnect your camera." #~ msgstr "請重新連接你的攝影機" #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Couldn't query device capabilities" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Make sure the device driver supports v4l2." #~ msgstr "確定你的設備驅動程式支援 v4l2." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Read method error" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please try mmap instead (--capture_method=1)." #~ msgstr "請試試mmap而不是(--capture_method=1)." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to allocate Buffers" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please try restarting your system." #~ msgstr "請試試重新啟動你的系統." #~ msgid "" #~ "Guvcview error:\n" #~ "\n" #~ "Unable to create Video Thread" #~ msgstr "" #~ "Guvcview錯誤:\n" #~ "\n" #~ "設備無法開啟" #~ msgid "Please report it to http://developer.berlios.de/bugs/?group_id=8179" #~ msgstr "請回報到http://developer.berlios.de/bugs/?group_id=8179" #~ msgid "Displays debug information" #~ msgstr "顯示debug訊息" #~ msgid "Exit after adding UVC extension controls (needs root/sudo)" #~ msgstr "在新增外掛控制後離開(需要使用root/sudo)" #~ msgid "Don't stream video (image controls only)" #~ msgstr "不能串流影像(只能控制圖片)" #~ msgid "Configuration file" #~ msgstr "設置檔案" #~ msgid "Hardware accelaration (enable(1) | disable(0))" #~ msgstr "硬體加速(啟用(1) | 停用(0))" #~ msgid "Frame size, default: 640x480" #~ msgstr "影格尺寸,預設值:640x480" #~ msgid "Image capture interval in seconds" #~ msgstr "圖片擷取間隔秒數" #~ msgid "Number of Pictures to capture" #~ msgstr "圖片擷取數" #~ msgid "Video File name (capture from start)" #~ msgstr "影像檔案名稱(從開始擷取)" #~ msgid "Video capture time (in seconds)" #~ msgstr "影像擷取時間(秒數)" #~ msgid "Exits guvcview after closing video" #~ msgstr "在關掉影像後離開guvcview" #~ msgid "Number of initial frames to skip" #~ msgstr "跳過的初始影格數" #~ msgid "Show FPS value (enable(1) | disable (0))" #~ msgstr "顯示FPS值(啟用(1) | 停用 (0))" #~ msgid "Load Profile at start" #~ msgstr "在啟動時讀取專案" #~ msgid "- local options" #~ msgstr "-本地選項" #~ msgid "Cap. Image" #~ msgstr "拍照" #~ msgid "Not enough free space left on disk" #~ msgstr "在硬碟上沒有足夠的剩餘空間" #~ msgid "YUY2 - uncomp YUV" #~ msgstr "YUY2 - uncomp YUV" #~ msgid "RGB - uncomp BMP" #~ msgstr "RGB - uncomp BMP" #~ msgid " Show" #~ msgstr " 顯示" #~ msgid "Quality:" #~ msgstr "品質:"